这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天
接着学习ts的编译选项。
noEmitOError
noEmitOnError应用的场景是如果你代码运行有错误的话就不产生编译文件。写法:
“noEmitOnError”:true
设置了以后,产生错误的话就不会产生编译文件。不设置的话我们会发现,即使在ts还没运行时候,我们就发现ts的代码有错误的地方,但是我们运行tsc命令去编译它,即使报错,但是还能编译成js文件,这怎么能行呐。设置了noEmitOnError后就可以解决这个问题了。
alwaysStrict
大家应该都知道javascript有一个严格模式,在js文件中使用"use Strict就可以打开严格模式".alwaysStrict是用来为ts文件编译后的js文件打开严格模式的。
“alwaysStrict”:true
这样设置以后就可以为ts文件编译后的js文件打开严格模式了。它的默认值是false,在这里我们设置为true。
noImplicitAny
用来设置不允许隐式any类型。
“noImplicitAny”:true
设置后就不可以用隐式any类型了,在ts文件中就得指定类型了。
noImplicitThis
“noImplicitAny”:true
设置noImplicitThis后就不允许不明确类型的this了。
strictNullChecks
“strictNullChecks”:true
设置严格的空值检查
noImplicitReturns
noImplicitReturns是设置无隐式返回。
“noImplicitReturns”:true
启用后,typescript将会检查所有代码路径,用来确保他们有返回值。
noUnusedLocals
用来检查没有使用的变量的错误
“noUnusedLocals”:true
alwaysStrict
所有的严格检查的总开关。
“alwaysStrict”:true
设置了这个属性,就会打开所有严格检查,包括上面所说的严格检查。设置了这个属性后,上面的所有属性都可以省略不写了。
以上是一些可能用到,或者常用的一些编译器选项,在ts官网的tsconfig.json文档中还有非常多的编译器选项,比如strictFunctionTypes,useUnknownInCatchVariables,allowUmdGlobalAccess等等,以及有这些属性的默认值,在上面实例中我又许多属性的默认值没有记录下来。