TypeScript tsconfig 配置文件

tsc --init 会生成一个 tsconfig.json 的配置文件,tsc 没法用需要全局安装 typescript。这个文件是对 ts 的编译配置文件。我们新建一个文件夹,生成 tsconfig.json,将

"removeComments": true,

这个配置放开,在编译的时候,把注释去掉。

demo.ts

const tt: string = 'hahah'; // this is a ts val

然后执行 tsc demo.ts,生成的 demo.js 中并未把注释去掉。也就是说用 tsc 直接指定某一个文件的时候,并不会用到 tsconfig.json。只有直接运行 tsc, 后面不带任何文件,他才会去执行 tsconfig.json

tsc 运行的原理是,这个命令敲下的时候,会先去读配置文件,什么都没有,默认编译根目录下所有的 ts 文件

如果根目录有多个文件,而我想只编译其中一个文件,但是又要使用到 tsconfig 怎么弄,这个需要在 tsconfig 里面配置路径,加上配置 include

{
  "include": ["./demo1.ts"],
  "compilerOptions": {}
}

除了可以写 include 之外,还可以写 exclude,不编译某些文件

{
  "exclude": ["./demo1.ts"],
  "compilerOptions": {}
}

这里只不编译 demo1.ts

ts-node demo.ts 会去读 tsconfig 的配置项

https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

这个文件可以看到各种配置的解释

这里的include,还可以写成 files,里面还可以用正则表示

除了 include,exclude,接下来就是 compilerOptions 这个文件里面的配置项,这个配置项里面有很多的配置项。这个下面指的就是编译过程中的配置

"removeComments": true, // 编译过程中注释去掉
"strict": true, // 表示他后面的配置项默认都为 true
"noImplicitAny": true, // 不明确的 any 类型必须加类型注解
"strictNullChecks": true, // 是否强制校验 Null,比如 const ss: string = null; 会报错,如果是 false 不报错

"rootDir": "./src", // 要编译的文件夹
"outDir": "./build", // 把编译好的文件夹放置到 build 文件夹中
"incremental": true, // 之前编译过的内容不在编译,只编译新增的内容
// incremental 打开后编译后会生成 tsconfig.tsbuildinfo,下次编译会去做比对,有不同的地方再进行编译

"allowJs": true, // 是否允许编译 js 代码,比如 es6 代码
"checkJs": true, // 对 js 语法进行检测,比如 js 语法写错了
"sourceMap": true, // 打包完生成 .js.map 文件
"noUnusedLocals": true, // 没有使用到的变量会提示
"noUnusedParameters": true, // 函数里面没有用到的参数会提示