编译
tsc 文件 -w
,文件监视,自动编译;- 项目根目录创建
tsconfig.json
文件,执行tsc
,可编译项目内的全部ts文件,执行tsc -w
,监视所有文件,自动编译;
tsconfig.json 常用配置项
{
/*
tsconfig.json是ts编译器的配置文件,ts编译器可以根据它的信息来对代码进行编译
*/
/*
"include" 用来指定哪些ts文件需要被编译,**表示任意目录,*表示任意文件
表示根目录下的src文件下的任意目录下的任意文件
*/
"include": ["./src/**/*"],
/*
"exclude" 不需要被编译的目录文件
默认值:["node_modules", "bower_components", "jspm_packages"]
*/
"exclude": ["./src/exclude/**/*"],
/*
"extends" 继承,例如引入外部文件,不常用,"extends": "./config/xxx",
*/
/*
"files" 指定被编译文件的列表,不常用,"files": ["app.ts"]
*/
/*
"compilerOptions" 编译器的选项
*/
"compilerOptions": {
/*
target 用来指定ts被编译为的ES版本,默认为ES3
取值:'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'esnext
*/
"target": "ES2015",
/*
module 指定要被使用的模块化规范
取值:'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', 'es2020', 'esnext'
*/
"module": "ES2015",
/* lib 用来指定项目中要使用的库,一般不改动,默认值就是浏览器环境所需要的那些库
取值:'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020',
'es2021', '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',
'es2021.promise', 'es2021.string', 'es2021.weakref', 'esnext.array', 'esnext.symbol',
'esnext.asynciterable', 'esnext.intl', 'esnext.bigint', 'esnext.string', 'esnext.promise',
'esnext.weakref'
*/
// "lib": ["xxx"]
/*
ourDir 用来指定编译后文件所在的目录
*/
"outDir": "./dist",
/*
将代码合并成一个文件
设置outFile后,所有的全局作用域中的代码会合并到同一个文件中,了解
outFile 仅支持 "amd" 和 "system" 模块
*/
// "outFile": "./dist/index.js",
/*
allowJs 是否对js文件进行编译,默认为false
*/
"allowJs": true,
/*
checkJs 是否检测js代码是否符合ts语法规范,默认为false
*/
"checkJs": true,
/*
removeComments 是否移除注释, 默认为false
*/
"removeComments": true,
/*
noEmit 不生成编译后的文件, 默认为false
*/
"noEmit": false,
/*
noEmitOnError 当有错误时不生成编译后的文件,默认为false
*/
"noEmitOnError": true,
/*
所有严格检查的总开关,默认为false
*/
"strict": true,
/*
alwaysStrict 用来设置编译后的文件是否使用严格模式,默认为false
*/
"alwaysStrict": true,
/*
noImplicitAny 不允许出现隐式的any类型,默认值为false
*/
"noImplicitAny": true,
/*
noImplicitThis 不允许不明确类型的this,默认值为false
*/
"noImplicitThis": true,
/*
strictNullChecks 严格的检查空值,默认为false
*/
"strictNullChecks": true
}
}