1. include
定义被编译文件所在的目录。
默认值: ["**/*"]
**
任意目录
*
任意文件
2. exclude
不需要被编译的文件目录。
默认值:["node_modules", "bower_components", "jspm_packages"]
3. extends
定义被继承的配置文件。
示例:
"extends": "./config.base.json"
4. files
指定被编译的文件列表。一般只有需要编译的文件少时才会用到。
示例:
"files": [
"index.ts",
"foo.ts"
]
5. compilerOptions
编译选项。
1. target
指定 TS 被编译为的 ES 版本。
可选值:'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'
2. module
指定要使用的模块化规范。
可选值:'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'
3. lib
用来指定项目中要使用的库。
可选值:'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'esnext', 'dom', 'dom.iterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2020.bigint', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint', 'esnext.string', 'esnext.promise', 'esnext.weakref'
4. outDir
指定编译后的文件所在目录。
5. outFile
所有全局作用域中的代码合并为一个文件。
如果 ts 中使用了模块化,则配置文件中 module 需要设置为 system。
6. allowJs
是否对 js 文件进行编译。默认 false。
7. checkJs
是否检查 js 代码符合语法规范。默认 false。
8. removeComments
是否移除注释。默认 false
9. noEmit
不生成编译后的文件。默认 false
10. noEmitOnError
有错误时不生成编译文件。默认 true
11. alwaysStrict
编译后的文件是否设置严格模式。默认 true
12. noImplicitAny
不允许隐式的 any。默认 true
// 隐式any
function fn(a, b) {
return a + b
}
13. noImplicitThis
不允许不明确类型的 this。默认 true
比如以下函数中的 this。在非严格模式下普通函数调用,this 为 window。严格模式下为 undefined。以上下文方式调用时,this 为其所指向的上下文。
function func() {
console.log(this)
}
手动指定:
function fn(this: Window) {
console.log(this)
}
14. strictNullChecks
严格检查空值。默认 true
比如下面情况:box 可能获取到的是 null。null 并没有方法。所以可能会报错。
const box = document.getElementById('box')
box.addEventListener('click', () => {
// do something...
})
解决方式:先判断是否存在,使用 if 或通过可选链判断。
if (box) {
// do something...
}
box?.addEventListener('click', () {
// do something...
})
15. strict
所有严格检查的总开关。默认 true
strict 开启后,所有 strict 相关的全部开启。
网友评论