TypeScript的配置文件 tsconfig.json

时间:2020-12-12 23:37:42
//tsconfig.json指定了用来编译这个项目的根文件和编译选项
{
    "compilerOptions": {             //compilerOptions:编译选项,可以被忽略,这时编译器会使用默认值
    "allowSyntheticDefaultImports": true,//允许从没有设置默认导出的模块中默认导入。这并不影响代码的显示,仅为了类型检查。
    "baseUrl": "./src",//解析非相对模块名的基准目录
    "emitDecoratorMetadata": true, //给源码里的装饰器声明加上设计类型元数据
    "experimentalDecorators": true,//启用实验性的ES装饰器
        "module": "commonjs",        //指定生成哪个模块系统代码
        "moduleResolution": "node",  //决定如何处理模块。或者是"Node"对于Node.js/io.js,或者是"Classic"(默认)
        "noEmitHelpers": true,//不再输出文件中生成用户自定义的帮助函数代码,如__extends。
                "noImplicitAny": false,     //在表达式和声明上有隐含的any类型时报错
             "sourceMap": true,          //用于debug ,生成相应的.map文件
             "strictNullChecks": false,//在严格的null检查模式下,null和undefined值不包含在任何类型里,只允许用它们自己和any来赋值(有个例外,undefined可以赋值到void)。
        "target": "es5",             //目标代码类型
    "paths": {  //模块名到基于baseUrl的路径映射的列表
    },
       "lib": [  //编译过程中需要引入的库文件的列表
        "dom",
        "es6"
       ],
    "types": [  //要包含的类型声明文件名列表;如果指定了types,只有被列出来的包才会被包含进来
    "hammerjs",
    "node",
    "source-map",
    "uglify-js",
    "webpack"
    ]},
      "exclude": [  //如果"files"和"include"都没有被指定,编译器默认包含当前目录和子目录下所有的TypeScript文件(.ts, .d.ts 和 .tsx),排除在"exclude"里指定的文件。
      "node_modules",
      "dist"
      ],
  "awesomeTypescriptLoaderOptions": {  //Typescript加载选项
  "forkChecker": true,
  "useWebpackText": true
  },
  "compileOnSave": false,          
  "buildOnSave": false,            
  "atom": { "rewriteTsconfig": false }
}