TypeScript编译选项

一、主要编译选项

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

2.   "include" 被用来指定哪些TS文件需要被编译 ,* 表示任意文件,** 表示任意目录,

         "include": ["./src/**/*"]

        "exclude": ["./src/hello/**/*"], // 表示 hello 下的文件,不需要编译

3.   "exclude" 不需要被编译的文件目录 ,默认值是["node_modules","bower_components","jspm_packages"]

4.   "files"   列出一个一个文件

5.   "compilerOptions" 编译器的选项

  •    // target 指定TS文件被编译出来js的版本   'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'esnext'

    "target": "ES6",

  •           // module 指定要使用的模块化的规范  'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', 'es2020', 'es2022', 'esnext', 'node16', 'nodenext'

    "module": "ES6",

  •     // lib 指定项目中要使用的库   'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', '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', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.sharedmemory', 'es2022.string', 'es2022.regexp', 'es2023.array', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint', 'esnext.string', 'esnext.promise', 'esnext.weakref', 'decorators', 'decorators.legacy'

     "lib": ["ES6"]

  •     // outDir 用来指定编译后文件所在的目录

    "outDir": "./dist",

  •     // outFile 可以将代码合并为一个文件,设置 outFile 以后,所有全局作用域中的代码会合并到同一个文件中

    // "outFile": "./dist/app.js"

  •     // allowJs 是否对JS文件进行编译,默认 false

    "allowJs": true,

  •     // checkJs 是否检查JS代码是否符合语法规范,默认 false

    "checkJs": true,

  •     // removeComments 是否移除注释,默认 false

    "removeComments": true,

  •     // noEmit 不生成编译后的JS文件,默认 false

    "noEmit": false,

  •     // noEmitOnError 当有错误的时候 不生成编译后的文件,默认 false

    "noEmitOnError": true,

  •     // strict 所有严格检查的总开关, 如果设置为 true  其他严格检查全都打开

    "strict": true,

  •     // alwaysStrict 用来设置编译后的文件是否使用严格模式,默认 false

    "alwaysStrict": true,

  •     // 不允许隐式的any类型,默认 false

    "noImplicitAny": true,

  •     // 不允许不明确类型的this,默认 false

    "noImplicitThis": true,

  •     // 严格的检查空值,默认 false

    "strictNullChecks": true

二、代码形式

{
  /*
   tsconfig.json 是TS编译器的配置文件,TS编译器可以根据它的信息对代码进行编译
   "include" 被用来指定哪些TS文件需要被编译 ,* 表示任意文件,** 表示任意目录
   "exclude" 不需要被编译的文件目录 ,默认值是 ["node_modules","bower_components","jspm_packages"]
   "files"   列出一个一个文件
   "compilerOptions" 编译器的选项

        路径:** 表示任意目录
              * 表示任意文件    
  */
  "include": ["./src/**/*"],
  // "exclude": ["./src/hello/**/*"], // 表示 hello 下的文件,不需要编译
  // "extends": []
  "compilerOptions": {
    // target 指定TS文件被编译出来js的版本   'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'esnext'
    "target": "ES6",
    // module 指定要使用的模块化的规范  'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', 'es2020', 'es2022', 'esnext', 'node16', 'nodenext'
    "module": "ES6",
    // lib 指定项目中要使用的库   'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'es2023', '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', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.sharedmemory', 'es2022.string', 'es2022.regexp', 'es2023.array', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint', 'esnext.string', 'esnext.promise', 'esnext.weakref', 'decorators', 'decorators.legacy'
    // "lib": ["ES6"]
    // outDir 用来指定编译后文件所在的目录
    "outDir": "./dist",
    // outFile 可以将代码合并为一个文件
    // 设置 outFile 以后,所有全局作用域中的代码会合并到同一个文件中
    // "outFile": "./dist/app.js"
    // allowJs 是否对JS文件进行编译,默认 false
    "allowJs": true,
    // checkJs 是否检查JS代码是否符合语法规范,默认 false
    "checkJs": true,
    // removeComments 是否移除注释,默认 false
    "removeComments": true,
    // noEmit 不生成编译后的JS文件,默认 false
    "noEmit": false,
    // noEmitOnError 当有错误的时候 不生成编译后的文件,默认 false
    "noEmitOnError": true,

    // 所有严格检查的总开关, 如果设置为 true  其他严格检查全都打开
    "strict": true,
    // alwaysStrict 用来设置编译后的文件是否使用严格模式,默认 false
    "alwaysStrict": true,
    // 不允许隐式的any类型,默认 false
    "noImplicitAny": true,
    // 不允许不明确类型的this,默认 false
    "noImplicitThis": true,
    // 严格的检查空值,默认 false
    "strictNullChecks": true
  }
}

你可能感兴趣的:(typescript,javascript,前端)