Update compiler options for TS 2.1. PR438
This commit is contained in:
parent
dae8970d89
commit
153b38de64
@ -6,6 +6,7 @@
|
||||
`--allowSyntheticDefaultImports` | `boolean` | `module === "system"` | 允许从没有设置默认导出的模块中默认导入。这并不影响代码的显示,仅为了类型检查。
|
||||
`--allowUnreachableCode` | `boolean` | `false` | 不报告执行不到的代码错误。
|
||||
`--allowUnusedLabels` | `boolean` | `false` | 不报告未使用的标签错误。
|
||||
`--alwaysStrict` | `boolean` | `false` | 以严格模式解析并为每个源文件生成`"use strict"`语句
|
||||
`--baseUrl` | `string` | | 解析非相对模块名的基准目录。查看[模块解析文档](./Module Resolution.md#base-url)了解详情。
|
||||
`--charset` | `string` | `"utf8"` | 输入文件的字符集。
|
||||
`--declaration`<br/>`-d` | `boolean` | `false` | 生成相应的'.d.ts'文件。
|
||||
@ -14,32 +15,34 @@
|
||||
`--disableSizeLimit` | `boolean` | `false` | 禁用JavaScript工程体积大小的限制
|
||||
`--emitBOM` | `boolean` | `false` | 在输出文件的开头加入BOM头(UTF-8 Byte Order Mark)。
|
||||
`--emitDecoratorMetadata`<sup>[1]</sup> | `boolean` | `false` | 给源码里的装饰器声明加上设计类型元数据。查看[issue #2577](https://github.com/Microsoft/TypeScript/issues/2577)了解更多信息。
|
||||
`--experimentalDecorators`<sup>[1]</sup>| `boolean` | `false` | 实验性启用ES7装饰器支持。
|
||||
`--experimentalDecorators`<sup>[1]</sup>| `boolean` | `false` | 启用实验性的ES装饰器。
|
||||
`--forceConsistentCasingInFileNames` | `boolean` | `false` | 不允许不一致包装引用相同的文件。
|
||||
`--help`<br/>`-h` | | | 打印帮助信息。
|
||||
`--importHelpers` | `string` | | 从[`tslib`](https://www.npmjs.com/package/tslib)导入生成器工具函数(比如`__extends`,`__rest`等)
|
||||
`--inlineSourceMap` | `boolean` | `false` | 生成单个sourcemaps文件,而不是将每sourcemaps生成不同的文件。
|
||||
`--inlineSources` | `boolean` | `false` | 将代码与sourcemaps生成到一个文件中,要求同时设置了`--inlineSourceMap`或`--sourceMap`属性。
|
||||
`--init` | | | 初始化TypeScript项目并创建一个`tsconfig.json`文件。
|
||||
`--isolatedModules` | `boolean` | `false` | 无条件地给没有解析的文件生成imports。
|
||||
`--jsx` | `string` | `"Preserve"` | 在'.tsx'文件里支持JSX:'React' 或 'Preserve'。查看[JSX](./JSX.md)。
|
||||
`--lib` | `string[]`| | 编译过程中需要引入的库文件的列表。<br/>可能的值为: <br/>► `es5` <br/>► `es6` <br/>► `es2015` <br/>► `es7` <br/>► `es2016` <br/>► `es2017` `dom` `webworker` `scripthost` <br/>► `es2015.core` <br/>► `es2015.collection` <br/>► `es2015.generator` <br/>► `es2015.iterable` <br/>► `es2015.promise` <br/>► `es2015.proxy` <br/>► `es2015.reflect` <br/>► `es2015.symbol` <br/>► `es2015.symbol.wellknown` <br/>► `es2016.array.include` <br/>► `es2017.object` <br/>► `es2017.sharedmemory`
|
||||
`--jsx` | `string` | `"Preserve"` | 在`.tsx`文件里支持JSX:`"React"`或`"Preserve"`。查看[JSX](./JSX.md)。
|
||||
`--jsxFactory` | `string` | `"React.createElement"` | 指定生成目标为react JSX时,使用的JSX工厂函数,比如`React.createElement`或`h`。
|
||||
`--lib` | `string[]`| | 编译过程中需要引入的库文件的列表。<br/>可能的值为: <br/>► `ES5` <br/>► `ES6` <br/>► `ES2015` <br/>► `ES7` <br/>► `ES2016` <br/>► `ES2017` <br/>► `DOM` <br/>► `DOM.Iterable` <br/>► `WebWorker` <br/>► `ScriptHost` <br/>► `ES2015.Core` <br/>► `ES2015.Collection` <br/>► `ES2015.Generator` <br/>► `ES2015.Iterable` <br/>► `ES2015.Promise` <br/>► `ES2015.Proxy` <br/>► `ES2015.Reflect` <br/>► `ES2015.Symbol` <br/>► `ES2015.Symbol.WellKnown` <br/>► `ES2016.Array.Include` <br/>► `ES2017.object` <br/>► `ES2017.SharedMemory` <br/><br/> 注意:如果`--lib`没有指定一个默认注入的库。默认注入的库为:<br/> ► 针对于`--target ES5`:`DOM,ES5,ScriptHost`<br/> ► 针对于`--target ES6`:`DOM,ES6,DOM.Iterable,ScriptHost`
|
||||
`--listEmittedFiles` | `boolean` | `false` | 打印出编译后生成文件的名字。
|
||||
`--listFiles` | `boolean` | `false` | 编译过程中打印文件名。
|
||||
`--locale` | `string` | *(platform specific)* | 显示错误信息时使用的语言,比如:en-us。
|
||||
`--mapRoot` | `string` | | 为调试器指定指定sourcemap文件的路径,而不是使用生成时的路径。当`.map`文件是在运行时指定的,并不同于`js`文件的地址时使用这个标记。指定的路径会嵌入到`sourceMap`里告诉调试器到哪里去找它们。
|
||||
`--maxNodeModuleJsDepth` | `number` | `0` | node_modules依赖的最大搜索深度并加载JavaScript文件。仅适用于`--allowJs`。
|
||||
`--module`<br/>`-m` | `string` | `target === 'ES6' ? 'ES6' : 'commonjs'` | 指定生成哪个模块系统代码:'commonjs','amd','system',或 'umd'或'es2015'。只有'amd'和'system'能和`--outFile`一起使用。当目标是ES5或以下的时候不能使用'es2015'。
|
||||
`--moduleResolution` | `string` | `module === 'amd' | 'system' | 'ES6' ? 'classic' : 'node'` | 决定如何处理模块。或者是'node'对于Node.js/io.js,或者是'classic'(默认)。查看[模块解析](./Module Resolution.md)了解详情。
|
||||
`--newLine` | `string` | *(platform specific)* | 当生成文件时指定行结束符:'CRLF'(dos)或 'LF' (unix)。
|
||||
`--module`<br/>`-m` | `string` | `target === "ES6" ? "ES6" : "commonjs"` | 指定生成哪个模块系统代码:`"None"`,`"CommonJS"`,`"AMD"`,`"System"`,`"UMD"`,`"ES6"`或`"ES2015"`。<br/>► 只有`"AMD"`和`"System"`能和`--outFile`一起使用。<br/>► 当目标是`"ES5"`或以下的时候不能使用`"ES6"`和`"ES2015"`。
|
||||
`--moduleResolution` | `string` | `module === "AMD" | "System" | "ES6" ? "Classic" : "Node"` | 决定如何处理模块。或者是`"Node"`对于Node.js/io.js,或者是`"Classic"`(默认)。查看[模块解析](./Module Resolution.md)了解详情。
|
||||
`--newLine` | `string` | *(platform specific)* | 当生成文件时指定行结束符:`"crlf"`(windows)或`"lf"`(unix)。
|
||||
`--noEmit` | `boolean` | `false` | 不生成输出文件。
|
||||
`--noEmitHelpers` | `boolean` | `false` | 不在输出文件中生成用户自定义的帮助函数代码,如`__extends`。
|
||||
`--noEmitOnError` | `boolean` | `false` | 报错时不生成输出文件。
|
||||
`--noFallthroughCasesInSwitch` | `boolean` | `false` | 报告switch语句的fallthrough错误。(即,不允许switch的case语句贯穿)
|
||||
`--noImplicitAny` | `boolean` | `false` | 在表达式和声明上有隐含的'any'类型时报错。
|
||||
`--noImplicitAny` | `boolean` | `false` | 在表达式和声明上有隐含的`any`类型时报错。
|
||||
`--noImplicitReturns` | `boolean` | `false` | 不是函数的所有返回路径都有返回值时报错。
|
||||
`--noImplicitThis` | `boolean` | `false` | 当`this`表达式的值为`any`类型的时候,生成一个错误。
|
||||
`--noImplicitUseStrict` | `boolean` | `false` | 模块输出中不包含'use strict'指令。
|
||||
`--noLib` | `boolean` | `false` | 不包含默认的库文件(lib.d.ts)。
|
||||
`--noLib` | `boolean` | `false` | 不包含默认的库文件(`lib.d.ts`)。
|
||||
`--noResolve` | `boolean` | `false` | 不把`/// <reference``>`或模块导入的文件加到编译文件列表。
|
||||
`--noUnusedLocals` | `boolean` | `false` | 若有未使用的局部变量则抛错。
|
||||
`--noUnusedParameters` | `boolean` | `false` | 若有未使用的参数则抛错。
|
||||
@ -50,19 +53,19 @@
|
||||
`--preserveConstEnums` | `boolean` | `false` | 保留`const`和`enum`声明。查看[const enums documentation](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#94-constant-enum-declarations)了解详情。
|
||||
`--pretty`<sup>[1]</sup> | `boolean` | `false` | 给错误和消息设置样式,使用颜色和上下文。
|
||||
`--project`<br/>`-p` | `string` | | 编译指定目录下的项目。这个目录应该包含一个`tsconfig.json`文件来管理编译。查看[tsconfig.json](./tsconfig.json.md)文档了解更多信息。
|
||||
`--reactNamespace` | `string` | `"React"` | 当目标为生成'react' JSX时,指定`createElement`和`__spread`的调用对象
|
||||
`--reactNamespace` | `string` | `"React"` | 当目标为生成`"react"` JSX时,指定`createElement`和`__spread`的调用对象
|
||||
`--removeComments` | `boolean` | `false` | 删除所有注释,除了以`/!*`开头的版权信息。
|
||||
`--rootDir` | `string` | *(common root directory is computed from the list of input files)* | 仅用来控制输出的目录结构`--outDir`。
|
||||
`rootDirs`<sup>[2]</sup> | `string[]`| | <i>根(root)</i>文件夹列表,联给了代表运行时表示工程结构的内容。查看[模块解析文档](./Module Resolution.md#virtual-directories-with-rootdirs)了解详情。
|
||||
`--skipDefaultLibCheck` | `boolean` | `false` | 忽略[库的默认声明文件](./Triple-Slash Directives.md#-reference-no-default-libtrue)的类型检查。
|
||||
`--skipLibCheck` | `boolean` | `false` | 忽略所有的声明文件(`*.d.ts`)的类型检查。
|
||||
`--sourceMap` | `boolean` | `false` | 生成相应的'.map'文件。
|
||||
`--sourceMap` | `boolean` | `false` | 生成相应的`.map`文件。
|
||||
`--sourceRoot` | `string` | | 指定TypeScript源文件的路径,以便调试器定位。当TypeScript文件的位置是在运行时指定时使用此标记。路径信息会被加到`sourceMap`里。
|
||||
`--strictNullChecks` | `boolean` | `false` | 在严格的`null`检查模式下,`null`和`undefined`值不包含在任何类型里,只允许用它们自己和`any`来赋值(有个例外,`undefined`可以赋值到`void`)。
|
||||
`--stripInternal`<sup>[1]</sup> | `boolean` | `false` | 不对具有`/** @internal */` JSDoc注解的代码生成代码。
|
||||
`--suppressExcessPropertyErrors`<sup>[1]</sup> | `boolean` | `false` | 阻止对对象字面量的额外属性检查。
|
||||
`--suppressImplicitAnyIndexErrors` | `boolean` | `false` | 阻止`--noImplicitAny`对缺少索引签名的索引对象报错。查看[issue #1232](https://github.com/Microsoft/TypeScript/issues/1232#issuecomment-64510362)了解详情。
|
||||
`--target`<br/>`-t` | `string` | `"ES5"` | 指定ECMAScript目标版本'ES3' (默认),'ES5',或'ES6'<sup>[1]</sup>
|
||||
`--target`<br/>`-t` | `string` | `"ES5"` | 指定ECMAScript目标版本`"ES3"`(默认),`"ES5"`,`"ES6"`/`"ES2015"`,`"ES2016"`,`"ES2017"`或`"ESNext"`。<br/><br/> 注意:`"ESNext"`最新的生成目标列表为[ES proposed features](https://github.com/tc39/proposals)
|
||||
`--traceResolution` | `boolean` | `false` | 生成模块解析日志信息
|
||||
`--types` | `string[]`| | 要包含的类型声明文件名列表。查看[@types,--typeRoots和--types](./tsconfig.json.md#types-typeroots-and-types)章节了解详细信息。
|
||||
`--typeRoots` | `string[]`| | 要包含的类型声明文件路径列表。查看[@types,--typeRoots和--types](./tsconfig.json.md#types-typeroots-and-types)章节了解详细信息。
|
||||
|
@ -87,7 +87,7 @@
|
||||
|
||||
使用`"include"`引入的文件可以使用`"exclude"`属性过滤。
|
||||
然而,通过`"files"`属性明确指定的文件却总是会被包含在内,不管`"exclude"`如何设置。
|
||||
如果没有特殊指定,`"exclude"`默认情况下会排除`node_modules`,`bower_components`,和`jspm_packages`目录。
|
||||
如果没有特殊指定,`"exclude"`默认情况下会排除`node_modules`,`bower_components`,`jspm_packages`和`<outDir>`目录。
|
||||
|
||||
任何被`"files"或`"include"`指定的文件所引用的文件也会被包含进来。
|
||||
`A.ts`引用了`B.ts`,因此`B.ts`不能被排除,除非引用它的`A.ts`在`"exclude"`列表中。
|
||||
@ -134,6 +134,56 @@
|
||||
注意,自动引入只在你使用了全局的声明(相反于模块)时是重要的。
|
||||
如果你使用`import "foo"`语句,TypeScript仍然会查找`node_modules`和`node_modules/@types`文件夹来获取`foo`包。
|
||||
|
||||
## 使用`extends`继承配置
|
||||
|
||||
`tsconfig.json`文件可以利用`extends`属性从另一个配置文件里继承配置。
|
||||
|
||||
`extends`是`tsconfig.json`文件里的顶级属性(与`compilerOptions`,`files`,`include`,和`exclude`一样)。
|
||||
`extends`的值是一个字符串,包含指向另一个要继承文件的路径。
|
||||
|
||||
在原文件里的配置先被加载,然后被来至继承文件里的配置重写。
|
||||
如果发现循环引用,则会报错。
|
||||
|
||||
来至所继承配置文件的`files`,`include`和`exclude`*覆盖*源配置文件的属性。
|
||||
|
||||
配置文件里的相对路径在解析时相对于它所在的文件。
|
||||
|
||||
比如:
|
||||
|
||||
`configs/base.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"compilerOptions": {
|
||||
"noImplicitAny": true,
|
||||
"strictNullChecks": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
`tsconfig.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"extends": "./configs/base",
|
||||
"files": [
|
||||
"main.ts",
|
||||
"supplemental.ts"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
`tsconfig.nostrictnull.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"extends": "./tsconfig",
|
||||
"compilerOptions": {
|
||||
"strictNullChecks": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## `compileOnSave`
|
||||
|
||||
在最顶层设置`compileOnSave`标记,可以让IDE在保存文件的时候根据`tsconfig.json`重新生成文件。
|
||||
|
@ -25,9 +25,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/zhongsp/TypeScript",
|
||||
"devDependencies": {
|
||||
"gulp": "^3.8.11",
|
||||
"gulp-typescript": "^2.6.0",
|
||||
"glob": "^5.0.15",
|
||||
"markdownlint": "0.0.8"
|
||||
"glob": "^7.1.1",
|
||||
"markdownlint": "^0.3.1"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user