var a = 2;
function fun(){
if(a === 1){
return \'abc\';
}
//fun函数只有当a = 1的时候,才有确定的返回值。
}
1.1.41、noFallthroughCasesInSwitch: boolean
设置为true时,将严格校验switch-case语法。
function fun2(){
let key = \'ab\';
switch (key) {
case \'ab\':
console.log(\'abc\');
}
}
以上代码默认情况不会报错,当设置noFallthroughCasesInSwitch: true时,则会提示错误。
1.1.42、allowUnreachableCode: boolean
设置为true时,如果有无法访问的代码,也不会报错。
function fun(){
return \'abc\';
return \'ccc\'; //默认会报错,设置allowUnreachableCode为true时,则不报错
}
1.1.43、forceConsistentCasingInFileNames: boolean
设置为true时,将强制区分大小写。默认为false。
//2a.ts
export const PI = 3.1415926;
//1a.ts
import PI from \'./2A.ts\';
function fun(){
return PI;
}
以上代码默认可以通过,当强制区分大小写时,则提示错误 \'2a\' !== \'2A\'
1.1.44、allowSyntheticDefaultImports: boolean
设置为true时,则允许从没有默认导出的模块中默认导入(也就是不做检查)。
//2.ts
export const PI = 3.1415926;
//1.ts
import PI from \'./2.ts\';
function fun(){
return PI;
}
以上代码,默认是会报错的,当设置allowSyntheticDefaultImports时,则不会报错。
1.1.45、allowJs: boolean
当设置为true时,js文件也会被编译。
注意:编译js文件时,如果不另外设置outFile,将不会成功,因为不能够重写源代码文件
1.2、compileOnSave
该属性用于启用保存时编译功能。
**注意:当前仅仅只有VS2015配置TypeScript1.8.4以后或者在atom中搭配atom-typescript插件才有效
1.3、exclude
exclude用于排除不需要编译的ts文件。该属性和files属性冲突。两者只能设置其一。
1.4、files
当files属性不存在时,编译器会编译当前目录和子目录中的所有文件。当files属性存在是,仅仅是编译files列表中的文件。
该属性和exclude属性冲突。如果同时指定了exclude和files,则files属性优先。
2、常用tsconfig配置
{
"compilerOptions": {
"target": "ES5",
"module": "commonjs",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"noEmitHelpers": true
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
],
"compileOnSave": false
}