Typescript – 编译配置说明
导读
- 严格检查
- strict
- 启用所有的严格检查,默认值为true,设置后相当于开启了所有的严格检查
- alwaysStrict
- 总是以严格模式对代码进行编译
- noImplicitAny
- 禁止隐式的any类型
- noImplicitThis
- 禁止类型不明确的this
- strictBindCallApply
- 严格检查bind、call和apply的参数列表
- strictFunctionTypes
- 严格检查函数的类型
- strictNullChecks
- 严格的空值检查
- strictPropertyInitialization
- 严格检查属性是否初始化
- 额外检查
- noFallthroughCasesInSwitch
- 检查switch语句包含正确的break
- noImplicitReturns
- 检查函数没有隐式的返回值
- noUnusedLocals
- 检查未使用的局部变量
- noUnusedParameters
- 检查未使用的参数
- 高级
- allowUnreachableCode
- 检查不可达代码
- 可选值:
- true,忽略不可达代码
- false,不可达代码将引起错误
- noEmitOnError
- 有错误的情况下不进行编译
- 默认值:false
tsconfig.json 文件配置
tsconfig.json 是 ts 编译器的配置文件,ts 编译器可以根据它的信息来对代码进行编译
indclude
用来指定哪些 ts 文件需要被编译
{
"include" : [
"./src/**/*",
]
}
** 代表任意目录
* 代表任意文件
exclude
用来指定哪些 ts 文件不编译
{
"exclude" : [
"./src/**/*"
]
}
** 代表任意目录
* 代表任意文件
默认值:“node_modules”,"bower_components" ,"jspm_packages"
extends
定义被继承的配置文件
{
"extends" : “./configs/base”
}
files
指定被编译文件的列表,只有需要编译的文件少时才会用到
{
"files" : [“core.ts”, "foo.ts", ...]
}
compilerOptuions
compilerOptuions 编译器的选项,决定编译器的编译配置
编译选项是配置文件中非常重要也比较复杂的配置选项
target
用来指定 ts 被编译的 ES 的版本
{
"compilerOptuions": {
"target" : 'ES5'
}
}
module
指定要使用的模块化的规范
{
"compilerOptuions": {
"module" : 'es2015'
}
}
lib
用来指定项目中要使用的库,比如 document 的库,就用用到 dom 库
{
"compilerOptuions": {
"lib" : ["dom", "es6"]
}
}
默认情况下不需要更改或变动
outDir
用于定义编译后文件所在的目录,默认是放在 ts 文件同目录下
{
"compilerOptuions": {
"outDir" : "./dist"
}
}
outFile
用于将代码合并为一个文件
{
"compilerOptuions": {
"outFile" : "./dist/app.js"
}
}
使用合并文件,只能在module
中设置 "amd"
或"system"
allowJS
指定是否对JS文件进行编译,默认是 false
{
"compilerOptuions": {
"allowJs" : true
}
}
checkJs
用于检查 js 文件是否符合语法规范,默认为 false
{
"compilerOptuions": {
"checkJs" : true
}
}
removeComments
是否移除注释,默认为 false ,如果想编译后去掉所有注释,可以设为 true
{
"compilerOptuions": {
"removeComments" : true
}
}
noEmit
是否生成编译后的文件,默认为 false
{
"compilerOptuions": {
"noEmit" : true
}
}
一般用于只编译检查不生成文件的做法
noEmitOnError
编译出错时不生成js文件,默认就算出现错误也会生成文件,设为 true 一旦出错就不会生成 js 文件,避免有安全隐患的代码编译出来。
{
"compilerOptuions": {
"noEmitOnError" : true
}
}
alwaysStrict
用来设置编译后的文件是否使用严格模式,默认 false
{
"compilerOptuions": {
"alwaysStrict" : true
}
}
noImplicitAny
指定不允许隐式 any 类型
{
"compilerOptuions": {
"noImplicitAny" : true
}
}
noImplicitThis
指定不允许不明确类型的 this,当在某些情况下 this 是指谁,不明确的时候,设置为true,会出现报错,除非显式的指定 this 是 谁,如 this : window
{
"compilerOptuions": {
"noImplicitThis" : true
}
}
strictNullChecks
是否启用检查空值,默认为 false ,意思是,当取得某个值时,有可能会取不到,得到的值为 null 或 undefined ,这时会报错提示,必须选判数该值是否存在后,再执行值的操作。
{
"compilerOptuions": {
"strictNullChecks" : true
}
}
strict
所有严格检查总开关,如果为 true ,所有编译检查都开启
{
"compilerOptuions": {
"strict" : true
}
}
共有 0 条评论