03TypeScript:编译选项

1.自动编译的两种方法

  • tsc ts文件 -w 能够对单个ts文件进行监视,若有修改则会自动重新编译。
  • 新建一个tsconfig.json文件,然后在命令行执行tsc -w 可以对所有ts文件进行监视,若有修改则会自动重新编译。

2.tsconfig.json文件

tsconfig.json 是ts编译器的配置文件,ts编译器可以根据它的信息来对代码进行编译

  1. include

    • 用来表示需要被编译的ts文件目录
    • 路径: **表示任意目录, *表示任意文件
    "include": [
    "./src/**/*"
    ]
    
  2. exclude

    • 用来表示不需要被编译的文件目录
    • 默认值:[“node_modules”, “bower_components”, “jspm_packages”]
    "exclude": [
        "./src/hello/**/*"
    ]
    
  3. extends

    • 定义被继承的配置文件
    //表示当前配置文件中会自动包含config目录下base.json中的所有配置信息
    "extends": "./configs/base"
    
  4. files

    • 指定被编译文件的列表,只有需要编译的文件少时才会用到
    "files": [
    	"core.ts",
    	"sys.ts",
    	"types.ts"
    ]
    
  5. compilerOptions(重要,编译器的选项)

    compilerOptions有很多的子选项

        "compilerOptions": {
          
          
            //target 用来指定ts被编译为ES的版本
            //'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'esnext'.
            "target": "es2015",
    
            //module 指定要使用的模块化的规范
            //'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', 'es2020', 'esnext'
            "module": "es2015",
            
            //lib 用来指定项目所用的库
            // "lib": [],//一般情况下不需要设置(浏览器运行的就不用管,nodejs运行的再根据实际使用去指定)
            // 可选值:'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',
    
    
            //outDir 用来指定编译后文件所在的目录
            "outDir": "./dist",
    
            //outFile 将代码合并为一个文件
            // 设置outFile后,所有的全局作用域中的代码会合并到同一个文件中
            // "outFile": "./dist/app.js",
    
            // 是否对js文件进行编译,默认是false
            "allowJs": true,
    
            // 是否检查js代码是否符合语法规范,默认值是false
            "checkJs": true,
    
            // 是否移除注释
            "removeComments": true,
    
            // 不生成编译后的文件
            "noEmit": false,
    
            // 当有错误时不生成编译文件
            "noEmitOnError": true,
    
            // 所有严格检查的总开关,包括下面四个(如果相同的话可以直接用这个,下面四个省略)
            "strict": true,
    
            // 用来设置编译后的文件是否使用严格模式,默认是false
            "alwaysStrict": true,
    
            // 不允许隐式的any类型
            "noImplicitAny": true,
    
            // 不允许不明确类型的this
            "noImplicitThis": true,
    
            // 严格检查空值
            "strictNullChecks": true
    
        }
    

猜你喜欢

转载自blog.csdn.net/Bertil/article/details/119389675
今日推荐