Quick Peek
Composing Types
泛型 Generics
Typescript 编译器
install
Emitting with errors
默认情况下,即便 tsc 检查到错误,仍然会输出一个 js 文件。但是如果想要保证在没有错误的情况下才输出 js 文件的话,添加 --noEmitOnError
参数
Downleveling
默认情况下,tsc 编译的目标是 ES3
,通过 --target
指定编译目标
Strictness flags
多数用户对于 Typescript 最初的要求即:可以验证部分代码的准确性以及优雅的代码提示。这也是 ts 默认提供的编程体验。例如,默认情况下,ts 不检查潜在的 null / undefined 值。但是利用 ts 的优势,这些问题是可以避免的,因此牺牲部分编程体验来换的更好的代码健壮性是合理的,特别是在大型项目或者长期维护的项目中。
ts 有多个 type-checking 的 strictness flag,可以在 tsconfig.json 设置 "strict": true
来启用所有的 flag,也可以启用其中的部分。下面两个是最常用的 strictness flags
noImplicityAny
不允许有会被推断出 any 的类型。如下面的 foo 方法中的 bar 参数,当没有指明 bar 的类型时,ts 会自动推断它为 any
,这是不允许的。
strictNullChecks
When strictNullChecks
is true
, null
and undefined
have their own distinct types and you’ll get a type error if you try to use them where a concrete value is expected.
Last updated