整理记录一下tsconfig中的一些参数配置
感觉typescript编译时的参数大致分为这几类,一是最基础的编译相关设置,比如输出路径,基础路径
然后typescript最后始终要转换成js,所以有一类参数就是用来控制生成js代码版本、代码格式的;前两类参数是必须要配置好的。
还有些参数是控制typescript编译时对代码检查的有点类似与eslint,检查不通过则会编译报错;同时还会有对typescript代码中语法的检测相关参数
还有些参数是额外的辅助功能,比如sourceMap,生成声明文件,去除注释等,这类参数可以根据具体情况进行设置。
baseUrl
设置待编译项目根路径,一般把tsconfig放在项目根目录中,值设为./
或者.
即可。
outDir
编译后文件输出目录,一般设置为dist
module
设置编译后的模块化模式,一般设置为commonjs
(其他可选项有UMD、AMD等),然后typescript会把import
、export
的语法转化为commonjs
格式的代码
target
设置编译后的js代码版本,可选值包括:es6
、es5
、esnext
等,如果需要考虑兼容性问题就可以设置为es5
或更低的版本,如果代码是在高版本的现代浏览器或高版本的node端,就可以设置为esnext
lib
typescript在编译过程中,会有一些内建的js api(比如Math),lib就用来指明所支持的js版本所对应的内建api,可选的值包括:es6
、esnext
、dom
等等,比如设置了esnext
那么所有的js标准化api都会被认为是合法的内建api
sourceMap
设为true
则会在编译后生成map
文件,调试的时候相关工具可以根据map文件定位到原来的typescript中代码所在位置
allowJs
设为true
则会允许在typescript中引入js模块文件
strict
设为true
开启严格的类型检查规则,以确保程序的正确性。严格模式下的检查规则有很多条,设置了strict
就是让所有的规则都开启,也可以不设置strict
,单独地去设置某一条规则是否开启。为了安全性建议开启strict模式。
removeComments
编译时是否去除注释代码
declaration
是否生成d.ts
类型声明文件
allowSyntheticDefaultImports
允许在加载模块时这样写:
import React from "react"
而不用再次声明一下
import * as React from "react"
noUnusedLocals和noUnusedParameters
这两项分别用来检测是否有无用变量和无用参数
experimentalDecorators
开启后允许使用实验性的装饰器语法