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 的配置项
这个文件可以看到各种配置的解释
这里的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, // 函数里面没有用到的参数会提示