ts(6) | 青训营笔记

76 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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等等,以及有这些属性的默认值,在上面实例中我又许多属性的默认值没有记录下来。