typeScript学习笔记
class3 : 2021.02.24
一、TS编译选项
-
自动编译文件
-
编译文件时,使用-w指令后,YS编译器会自动监视文件变化,并在文件发生变化时对文件进行重新编译。
-
示例:
tsc xxx.ts -w
-
-
自动编译整个项目
-
如果直接使用tsc指令,则可以自动将当前项目下所有ts文件编译为JS文件;
-
但是能直接使用tsc指令的前提是,要先在项目的根目录下创建一个ts的配置文件tsconfig.json;
-
tsconfig.json是一个json文件,ts编译器可以根据配置文件里的相关配置来对代码进行编译,添加配置文件后,只需要tsc命令即可完成对整个项目的编译
-
部分配置选项
-
{ /* include 表示包含,用来指令哪些TS文件需要被编译 *编译项目根目录下的src文件夹下的所有文件夹中的所有文件,**表示所有文件夹,*表示所有文件 */ "include": [ "./src/**/*" ], /* exclude 表示排除,用来指令哪些TS文件和目录不需要被编译 */ "exclude": [ "./src/hello/**/*", "node_modules", "bower_components" ], /* extends 定义被继承的配置文件,例如还有一个配置文件,那个配置文件里的代码在这里都可以复用,但是此处又不想再写一遍,就可以使用继承功能。 */ "extends": "./configs/base", /* files 功能跟include类似,区别是include可以直接设置目录,files是直接把一个一个的文件名列举出来。一般不使用这个功能,因为当项目比较庞大时, *文件很多,而且可能会存在重名的文件 */ "files": [], //compilerOptions 编译器的选项,决定了编译器如何对文件进行编译 "compilerOptions": { //指定ts文件被编译成js的的ES版本,默认是ES3,可选:"es3" ,"es5" ,"es6" ,"es2015" ,"es2016" ,"es2017" ,"es2018" ,"es2019" ,"es2020" ,"esnext" "target": "es6", //模块化规范的版本 module”选项的参数必须为 'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', 'es2020', 'esnext'。 "module": "system", //lib用来指定项目中要使用的库,一般不设置,使用默认值 可选:'ES5', 'ES6', 'ES2015', 'ES7', 'ES2016', 'ES2017', 'ES2018', 'ESNext', /*'DOM', 'DOM.Iterable', 'WebWorker', '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.Intl', 'ES2017.SharedMemory', 'ES2017.String', 'ES2017.TypedArrays', 'ES2018.Intl', 'ES2018.Promise', 'ES2018.RegExp', *'ESNext.AsyncIterable', 'ESNext.Array', 'ESNext.Intl', 'ESNext.Symbol'. Requires */ "lib": [ "ES6", "ES2015" ], //outDir用来指定编译后文件所在目录 "outDir": "./dist", //outFile 将代码合并为一个文件 要合并时,module仅支持 "amd" 和 "system" 模块 "outFile": "./dist/app.js", //allowJs 是否要编译JS文件,默认为false "allowJs": false, //checkJs 是否要检查JS语法,默认为false "checkJs": false, //removeComments编译后是否移除注释 "removeComments": false, //noEmit 不生成编译后的文件 "noEmit": true, //noEmitOnError 报错时不生成编译后的文件 "noEmitOnError": true, //strict 严格检查的总开关,只要这个设置为true时,其他的严格检查选项默认为true,就可 以不写,需要把哪一项设置为false可以再设置 "strict": true, //alwaysStrict 用来设置编译后的文件是否使用严格模式,默认false "alwaysStrict": false, //noImplicitAny 不允许隐式any类型 "noImplicitAny": false, //noImplicitThis 不允许使用不明确类型的this "noImplicitThis": false, //strictNullChecks 严格的检查空值 "strictNullChecks": false, ... } }
-
-