From 97171f7aaa788c73111522041107840a8dde0e2e Mon Sep 17 00:00:00 2001 From: Wenlu Wang Date: Fri, 30 Oct 2020 17:10:14 +0800 Subject: [PATCH 1/2] (zh) Add project options --- .../copy/zh/categories/Basic_Options_6172.md | 5 + .../copy/zh/options/allowJs.md | 39 ++++++ .../copy/zh/options/checkJs.md | 43 +++++++ .../copy/zh/options/composite.md | 16 +++ .../copy/zh/options/declaration.md | 32 +++++ .../copy/zh/options/downlevelIteration.md | 96 ++++++++++++++ .../copy/zh/options/importHelpers.md | 47 +++++++ .../copy/zh/options/incremental.md | 10 ++ .../copy/zh/options/isolatedModules.md | 75 +++++++++++ .../tsconfig-reference/copy/zh/options/jsx.md | 95 ++++++++++++++ .../tsconfig-reference/copy/zh/options/lib.md | 69 ++++++++++ .../copy/zh/options/module.md | 118 ++++++++++++++++++ .../copy/zh/options/noEmit.md | 10 ++ .../copy/zh/options/outDir.md | 39 ++++++ .../copy/zh/options/outFile.md | 11 ++ .../copy/zh/options/plugins.md | 18 +++ .../copy/zh/options/removeComments.md | 33 +++++ .../copy/zh/options/rootDir.md | 66 ++++++++++ .../copy/zh/options/sourceMap.md | 39 ++++++ .../copy/zh/options/target.md | 25 ++++ .../copy/zh/options/tsBuildInfoFile.md | 8 ++ 21 files changed, 894 insertions(+) create mode 100644 packages/tsconfig-reference/copy/zh/categories/Basic_Options_6172.md create mode 100644 packages/tsconfig-reference/copy/zh/options/allowJs.md create mode 100644 packages/tsconfig-reference/copy/zh/options/checkJs.md create mode 100644 packages/tsconfig-reference/copy/zh/options/composite.md create mode 100644 packages/tsconfig-reference/copy/zh/options/declaration.md create mode 100644 packages/tsconfig-reference/copy/zh/options/downlevelIteration.md create mode 100644 packages/tsconfig-reference/copy/zh/options/importHelpers.md create mode 100644 packages/tsconfig-reference/copy/zh/options/incremental.md create mode 100644 packages/tsconfig-reference/copy/zh/options/isolatedModules.md create mode 100644 packages/tsconfig-reference/copy/zh/options/jsx.md create mode 100644 packages/tsconfig-reference/copy/zh/options/lib.md create mode 100644 packages/tsconfig-reference/copy/zh/options/module.md create mode 100644 packages/tsconfig-reference/copy/zh/options/noEmit.md create mode 100644 packages/tsconfig-reference/copy/zh/options/outDir.md create mode 100644 packages/tsconfig-reference/copy/zh/options/outFile.md create mode 100644 packages/tsconfig-reference/copy/zh/options/plugins.md create mode 100644 packages/tsconfig-reference/copy/zh/options/removeComments.md create mode 100644 packages/tsconfig-reference/copy/zh/options/rootDir.md create mode 100644 packages/tsconfig-reference/copy/zh/options/sourceMap.md create mode 100644 packages/tsconfig-reference/copy/zh/options/target.md create mode 100644 packages/tsconfig-reference/copy/zh/options/tsBuildInfoFile.md diff --git a/packages/tsconfig-reference/copy/zh/categories/Basic_Options_6172.md b/packages/tsconfig-reference/copy/zh/categories/Basic_Options_6172.md new file mode 100644 index 000000000000..798129a1b745 --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/categories/Basic_Options_6172.md @@ -0,0 +1,5 @@ +--- +display: "工程选项" +--- + +这些设置将用于指定你的工程的运行时配置,你希望 JavaScript 怎样被生成和生成在哪里,以及你希望与现有 JavaScript 代码的集成程度。 diff --git a/packages/tsconfig-reference/copy/zh/options/allowJs.md b/packages/tsconfig-reference/copy/zh/options/allowJs.md new file mode 100644 index 000000000000..81f6060e83c8 --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/allowJs.md @@ -0,0 +1,39 @@ +--- +display: "允许 JS" +oneline: "允许你的程序包含 JS 文件。使用 checkJS 来获取在这些文件中的错误。" +--- + +允许 JavaScript 文件在你的工程中被引入,而不是仅仅允许 `.ts` 和 `.tsx` 文件。例如这个 JS 文件: + +```js twoslash +// @filename: card.js +export const defaultCardDeck = "Heart"; +``` + +当你引入到一个 TypeScript 文件时将会抛出一个错误: + +```ts twoslash +// @errors: 2307 +// @filename: card.js +module.exports.defaultCardDeck = "Heart"; +// ---cut--- +// @filename: index.ts +import { defaultCardDeck } from "./card"; + +console.log(defaultCardDeck); +``` + +当启用 `allowJs` 后它将被正常引入: + +```ts twoslash +// @filename: card.js +module.exports.defaultCardDeck = "Heart"; +// ---cut--- +// @allowJs +// @filename: index.ts +import { defaultCardDeck } from "./card"; + +console.log(defaultCardDeck); +``` + +这个选项是一种可以允许 `.ts` 和 `.tsx` 与现有的 JavaScript 文件共存的方式。可以用于逐步将 TypeScript 文件逐步添加到 JS 工程中。 diff --git a/packages/tsconfig-reference/copy/zh/options/checkJs.md b/packages/tsconfig-reference/copy/zh/options/checkJs.md new file mode 100644 index 000000000000..5488d2f333bd --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/checkJs.md @@ -0,0 +1,43 @@ +--- +display: "检查 JS" +oneline: "在经过类型检查的 JavaScript 中报告错误。" +--- + +与 `allowJs` 配合使用,当 `checkJs` 被启用时,JavaScript 文件中会报告错误。也就是相当于在项目中所有 JavaScript 文件顶部包含 `// @ts-check`。 + + +Works in tandem with `allowJs`. When `checkJs` is enabled then errors are reported in JavaScript files. This is +the equivalent of including `// @ts-check` at the top of all JavaScript files which are included in your project. + +例如,根据 TypeScript 自带的 `parseFloat` 类型定义,这是不正确的 JavaScript: + +```js +// parseFloat only takes a string +module.exports.pi = parseFloat(3.124); +``` + +当引入到一个 TypeScript 模块: + +```ts twoslash +// @allowJs +// @filename: constants.js +module.exports.pi = parseFloat(3.124); + +// @filename: index.ts +import { pi } from "./constants"; +console.log(pi); +``` + +你将不会得到任何错误。但是如果你开启了 `checkJs` 选项,那么你可以从 JavaScript 文件中得到错误信息。 + +```ts twoslash +// @errors: 2345 +// @allowjs: true +// @checkjs: true +// @filename: constants.js +module.exports.pi = parseFloat(3.124); + +// @filename: index.ts +import { pi } from "./constants"; +console.log(pi); +``` diff --git a/packages/tsconfig-reference/copy/zh/options/composite.md b/packages/tsconfig-reference/copy/zh/options/composite.md new file mode 100644 index 000000000000..1a2526aa32f6 --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/composite.md @@ -0,0 +1,16 @@ +--- +display: "组合" +oneline: "启用约束以使工程可以引用其他工程来用于构建。" +--- + +`composite` 选项会强制执行某些约束,使得构建工具(包括 在 `--build` 模式下的 TypeScript 本身)可以快速确定一个工程是否已经建立。 + +当此设置开启时: + +- 如果没有明确指定 `rootDir`,则默认为包含 `tsconfig.json` 文件的目录。 + +- 所有实现的文件必须由 `include` 来匹配,或在 `files` 数组中指定。如果违反了这一约束,`tsc` 将告诉你哪些文件没有被指定。 + +- `declaration` 默认为 `true`。 + +你可以在[手册](https://www.typescriptlang.org/docs/handbook/project-references.html)中找到关于 TypeScript 工程的文档。 diff --git a/packages/tsconfig-reference/copy/zh/options/declaration.md b/packages/tsconfig-reference/copy/zh/options/declaration.md new file mode 100644 index 000000000000..c325b3df1ea3 --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/declaration.md @@ -0,0 +1,32 @@ +--- +display: "声明" +oneline: "为你工程中的 TypeScript 以及 JavaScript 文件生成 .d.ts 文件。" +--- + +为你工程中的每个 TypeScript 或 JavaScript 文件生成 `.d.ts` 文件。 +这些 `.d.ts` 文件是描述模块外部 API 的类型定义文件。 +像 TypeScript 这样的哦你根据可以通过 `.d.ts` 文件为非类型化的代码提供 intellisense 和精确的类型。 + +当 `declaration` 设置为 `true` 时,用编译器执行下面的 TypeScript 代码: + +```ts twoslash +export let helloWorld = "hi"; +``` + +将会生成如下这样的 `index.js` 文件: + +```ts twoslash +// @showEmit +export let helloWorld = "hi"; +``` + +以及一个相应的 `helloWorld.d.ts`: + +```ts twoslash +// @showEmittedFile: index.d.ts +// @showEmit +// @declaration +export let helloWorld = "hi"; +``` + +当使用 `.d.ts` 文件处理 JavaScript 文件时,你可能需要使用 [`emitDeclarationOnly`](#emitDeclarationOnly) 或 [`outDir`](#outDir) 来确保 JavaScript 文件不会被覆盖。 diff --git a/packages/tsconfig-reference/copy/zh/options/downlevelIteration.md b/packages/tsconfig-reference/copy/zh/options/downlevelIteration.md new file mode 100644 index 000000000000..526bea7fd38d --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/downlevelIteration.md @@ -0,0 +1,96 @@ +--- +display: "迭代器降级" +oneline: "为迭代器对象生成更符合要求但更复杂的 JavaScript。" +--- + +‘降级’ 是 TypeScript 的术语,指用于转换到旧版本的 JavaScript。 +这个选项是为了在旧版 Javascript 运行时上更准确的实现现代 JavaScript 迭代器的概念。 + +ECMAScript 6 增加了几个新的迭代器原语:`for / of` 循环(`for (el of arr)`),数组展开(`[a, ...b]`),参数展开(`fn(...args)`)和 `Symbol.iterator`。 + +如果 `Symbol.iterator` 存在的话,`--downlevelIteration` 将允许在 ES5 环境更准确的使用这些迭代原语。 + +#### 例:`for / of` 的效果 + +对于 TypeScript 代码: + +```ts twoslash +const str = "Hello!"; +for (const s of str) { + console.log(s); +} +``` + +如果没有启用 `downlevelIteration`,`for / of` 循环将被降级为传统的 `for` 循环: + +```ts twoslash +// @target: ES5 +// @showEmit +const str = "Hello!"; +for (const s of str) { + console.log(s); +} +``` + +这通常是人们所期望的,但是它并不是 100% 符合 ECMAScript 迭代器协议。 +某些字符串,例如 emoji (😜),其 `.length` 为 2(甚至更多),但在 `for-of` 循环中应只有一次迭代。 +可以在 [Jonathan New 的这篇文章中](https://blog.jonnew.com/posts/poo-dot-length-equals-two) 找到更详细的解释。 + +当 `downlevelIteration` 启用时,TypeScript 将会使用辅助函数来检查 `Symbol.iterator` 的实现(无论是原生实现还是polyfill)。 +如果没有实现,则将会回退到基于索引的迭代。 + +```ts twoslash +// @target: ES5 +// @downlevelIteration +// @showEmit +const str = "Hello!"; +for (const s of str) { + console.log(s); +} +``` + +你也可以通过 [`importHelpers`](#importHelpers) 来使用 [tslib](https://www.npmjs.com/package/tslib) 以减少被内联的 JavaScript 的数量: + +```ts twoslash +// @target: ES5 +// @downlevelIteration +// @importHelpers +// @showEmit +const str = "Hello!"; +for (const s of str) { + console.log(s); +} +``` + +**注:** 如果在运行时不存在 `Symbol.iterator`,启用 `downlevelIteration` 将不会提高合规性。 + +#### 例:数组展开的效果 + +这是一个数组展开: + +```js +// 构建一个新的数组,其元素首先为 1,然后是 arr2 的元素。 +const arr = [1, ...arr2]; +``` +根据描述,听起来很容易降级到 ES5: + +```js +// The same, right? +const arr = [1].concat(arr2); +``` + +但是在某些罕见的情况下会明显不同。例如如果数组中有一个“洞”,缺失的索引在展开时将创建一个 _自己的_ 属性,但若使用 `concat` 则不会: + +```js +// 构建一个元素 `1` 不存在的数组 +let missing = [0, , 1]; +let spreaded = [...missing]; +let concated = [].concat(missing); + +// true +"1" in spreaded; +// false +"1" in concated; +``` + +就像 `for / of` 一样,`downlevelIteration` 将使用 `Symbol.iterator`(如果存在的话)来更准确的模拟 ES6 的行为。 diff --git a/packages/tsconfig-reference/copy/zh/options/importHelpers.md b/packages/tsconfig-reference/copy/zh/options/importHelpers.md new file mode 100644 index 000000000000..22e2b1d936ed --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/importHelpers.md @@ -0,0 +1,47 @@ +--- +display: "导入辅助" +oneline: "允许每个项目从 tslib 中导入一次辅助函数,而不是在每个文件中都包含他们。" +--- + +对于某些降级行为,TypeScript 使用一些辅助代码来进行操作。例如继承类,展开数组或对象,以及异步操作。 +默认情况下,这些辅助代码被插入到使用它们的文件中。 +如果在许多不同的模块中使用相同的辅助代码,则可能会导致代码重复。 + +如果启用了 `importHelpers` 选项,这些辅助函数将从 [tslib](https://www.npmjs.com/package/tslib) 中被导入。 +你需要确保 `tslib` 模块在运行时可以被导入。 +这只影响模块,全局脚本文件不会尝试导入模块。 + +例如,对于如下 TypeScript 代码: + +```ts +export function fn(arr: number[]) { + const arr2 = [1, ...arr]; +} +``` + +开启 [`downlevelIteration`](#downlevelIteration) 并且 `importHelpers` 仍为 `false`: + +```ts twoslash +// @showEmit +// @target: ES5 +// @downleveliteration +export function fn(arr: number[]) { + const arr2 = [1, ...arr]; +} +``` + +同时开始 [`downlevelIteration`](#downlevelIteration) 和 `importHelpers`: + +```ts twoslash +// @showEmit +// @target: ES5 +// @downleveliteration +// @importhelpers +// @noErrors +export function fn(arr: number[]) { + const arr2 = [1, ...arr]; +} +``` + +当你提供了自行实现的这些函数时,你可以使用 [`noEmitHelpers`](#noEmitHelpers)。 + diff --git a/packages/tsconfig-reference/copy/zh/options/incremental.md b/packages/tsconfig-reference/copy/zh/options/incremental.md new file mode 100644 index 000000000000..6590fe86a0fa --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/incremental.md @@ -0,0 +1,10 @@ +--- +display: "增量" +oneline: "为支持增量编译工程,保存 .tsbuildinfo 文件" +--- + +使 TypeScript 将上次编译的工程图信息保存到磁盘上的文件中。这将会在您编译输出的同一文件夹中创建一系列 `.tsbuildinfo` 文件。 +它们不会再运行时被您的 JavaScript 使用,并且可以被安全的删除。 +你可以在 [3.4 发布日志](/docs/handbook/release-notes/typescript-3-4.html#faster-subsequent-builds-with-the---incremental-flag) 中获取更多关于该选项的内容。 + +可以使用 [`tsBuildInfoFile`](#tsBuildInfoFile) 来控制文件被编译到哪个文件夹。 diff --git a/packages/tsconfig-reference/copy/zh/options/isolatedModules.md b/packages/tsconfig-reference/copy/zh/options/isolatedModules.md new file mode 100644 index 000000000000..5fa2c1ce5b25 --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/isolatedModules.md @@ -0,0 +1,75 @@ +--- +display: "孤立模块" +oneline: "确保每个文件都可以不依赖于其他导入而被安全转译。" +--- + +虽然你可以使用 TypeScript 来从 TypeScript 中生成 JavaScript 代码,但是使用其他转译器例如 [Babel](https://babeljs.io) 也很常见。 +但其他转译器一次只能在一个文件上操作,这意味着它们不能进行基于完全理解类型系统后的代码转译。 +这个限制也同样适用于被一些构建工具使用的 TypeScript 的 `ts.transpileModule` 接口。 + +这些限制可能会导致一些 TypeScript 特性的运行时问题,例如 `const enum` 和 `namespace`。 +设置 `isolatedModules` 选项后,TypeScript 将会在当你写的某些代码不能被单文件转译的过程正确处理时警告你。 + +它不会改变你代码的行为,也不会影响 TypeScript 的检查和代码生成过程。 + +一些当 `isolatedModules` 被启用时不工作的例子: + +#### 导出非值标识符 + +在 TypeScript 中,你可以引入一个 _类型_,然后再将其导出: + +```ts twoslash +// @noErrors +import { someType, someFunction } from "someModule"; + +someFunction(); + +export { someType, someFunction }; +``` + +由于 `someType` 并没有值,所以生成的 `export` 将不会导出它(否则将导致 JavaScript 运行时的错误): + +```js +export { someFunction }; +``` + +单文件转译器并不知道 `someType` 是否会产生一个值,所以导出一个只指向类型的名称会是一个错误。 + +#### 非模块文件 + +如果设置了 `isolatedModules`,则所有的实现文件必须是 _模块_ (也就是它有某种形式的 `import`/`export`)。如果任意文件不是模块就会发生错误: + +```ts twoslash +// @errors: 1208 +// @isolatedModules +function fn() {} +``` + +此限制不适用于 `.d.ts` 文件 + +#### 指向 `const enum` 成员 + +在 TypeScript 中,当你引用一个 `const enum` 的成员时,该引用在生成的 JavaScript 中将会被其实际值所代替。这会将这样的 TypeScript 代码: + +```ts twoslash +declare const enum Numbers { + Zero = 0, + One = 1, +} +console.log(Numbers.Zero + Numbers.One); +``` + +转换为这样的 JavaScript: + +```ts twoslash +// @showEmit +// @removeComments +declare const enum Numbers { + Zero = 0, + One = 1, +} +console.log(Numbers.Zero + Numbers.One); +``` + +在不知道这些成员值的情况下,其他转译器不能替换对 `Numbers` 的引用。如果无视的话则会导致运行时错误(运行时没有 `Numbers`) 对象。 +正因如此,当启用 `isolatedModules` 时,引用环境中的 `const enum` 成员将会是一个错误。 diff --git a/packages/tsconfig-reference/copy/zh/options/jsx.md b/packages/tsconfig-reference/copy/zh/options/jsx.md new file mode 100644 index 000000000000..b14822d96af3 --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/jsx.md @@ -0,0 +1,95 @@ +--- +display: "JSX" +oneline: "JSX 代码生成" +--- + +控制 JSX 在 JavaScript 文件中的输出方式。 +这只影响 `.tsx` 文件的 JS 文件输出。 + +- `react`: 将 JSX 改为等价的对 `React.createElement` 的调用并生成 `.js` 文件。 +- `react-jsx`: 改为 `__jsx` 调用并生成 `.js` 文件。 +- `react-jsxdev`: 改为 `__jsx` 调用并生成 `.js` 文件。 +- `preserve`: 不对 JSX 进行改变并生成 `.jsx` 文件。 +- `react-native`: 不对 JSX 进行改变并生成 `.js` 文件。 + +### 例 + +示例代码: + +```tsx +export const helloWorld = () =>

Hello world

; +``` + +默认为: `"react"` + +```tsx twoslash +declare module JSX { + interface Element {} + interface IntrinsicElements { + [s: string]: any; + } +} +// @showEmit +// @noErrors +export const helloWorld = () =>

Hello world

; +``` + +保留: `"preserve"` + +```tsx twoslash +declare module JSX { + interface Element {} + interface IntrinsicElements { + [s: string]: any; + } +} +// @showEmit +// @noErrors +// @jsx: preserve +export const helloWorld = () =>

Hello world

; +``` + +React Native: `"react-native"` + +```tsx twoslash +declare module JSX { + interface Element {} + interface IntrinsicElements { + [s: string]: any; + } +} +// @showEmit +// @noErrors +// @jsx: react-native +export const helloWorld = () =>

Hello world

; +``` + +React 17 转换: `"react-jsx"`[[1]](https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html) + +```tsx twoslash +declare module JSX { + interface Element {} + interface IntrinsicElements { + [s: string]: any; + } +} +// @showEmit +// @noErrors +// @jsx: react-jsx +export const helloWorld = () =>

Hello world

; +``` + +React 17 开发模式转换: `"react-jsxdev"`[[1]](https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html) + +```tsx twoslash +declare module JSX { + interface Element {} + interface IntrinsicElements { + [s: string]: any; + } +} +// @showEmit +// @noErrors +// @jsx: react-jsxdev +export const helloWorld = () =>

Hello world

; +``` diff --git a/packages/tsconfig-reference/copy/zh/options/lib.md b/packages/tsconfig-reference/copy/zh/options/lib.md new file mode 100644 index 000000000000..1d488f94fc5c --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/lib.md @@ -0,0 +1,69 @@ +--- +display: "库" +oneline: "描述目标运行时环境的声明文件列表。" +--- + +TypeScript 包括一组默认的内建 JS 接口(例如 `Math`)的类型定义,以及在浏览器环境中存在的对象的类型定义(例如 `document`)。 +TypeScript 还包括与你指定的 `target` 选项相匹配的较新的 JS 特性的 API。例如如果`target` 为 `ES6` 或更新的环境,那么 `Map` 的类型定义是可用的。 + +你可能出于某些原因改变这些: + +- 你的程序不运行在浏览器中,因此你不想要 `"dom"` 类型定义。 +- 你的运行时平台提供了某些 JavaScript API 对象(也许通过 polyfill),但还不支持某个 ECMAScript 版本的完整语法。 +- 你有一些 (但不是全部)对于更高级别的 ECMAScript 版本的 polyfill 或本地实现。 + +### 高阶库 + +| 名称 | 内容 | +| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ES5` | ES3 和 ES5 的核心功能定义 | +| `ES2015` | ES2015 中额外提供的 API (又被称为 ES6) —— `array.find`, `Promise`,`Proxy`,`Symbol`,`Map`,`Set`,`Reflect` 等。 | +| `ES6` | ES2015 的别名。 | +| `ES2016` | ES2016 中额外提供的 API —— `array.include` 等。 | +| `ES7` | ES2016 的别名。 | +| `ES2017` | ES2017 中额外提供的 API —— `Object.entries`,`Object.values`,`Atomics`,`SharedArrayBuffer`,`date.formatToParts`,`typed arrays` 等。 | +| `ES2018` | ES2018 中额外提供的 API —— `async iterables`,`promise.finally`,`Intl.PluralRules`,`rexexp.groups` 等。 | +| `ES2019` | ES2019 中额外提供的 API —— `array.flat`,`array.flatMap`,`Object.fromEntries`,`string.trimStart`,`string.trimEnd` 等。 | +| `ES2020` | ES2020 中额外提供的 API —— `string.matchAll` 等。 | +| `ESNext` | ESNext 中额外提供的 API —— 随着 JavaScript 的发展,这些会发生变化。 | +| `DOM` | [DOM](https://developer.mozilla.org/docs/Glossary/DOM) 定义 —— `window`,`document` 等。 | +| `WebWorker` | [WebWorker](https://developer.mozilla.org/docs/Web/API/Web_Workers_API/Using_web_workers) 上下文中存在的 API。 | +| `ScriptHost` | [Windows Script Hosting System](https://wikipedia.org/wiki/Windows_Script_Host) 的 API。 | + +### 库的各个组件 + +| 名称 | +| ------------------------- | +| `DOM.Iterable` | +| `ES2015.Core` | +| `ES2015.Collection` | +| `ES2015.Generator` | +| `ES2015.Iterable` | +| `ES2015.Promise` | +| `ES2015.Proxy` | +| `ES2015.Reflect` | +| `ES2015.Symbol` | +| `ES2015.Symbol.WellKnown` | +| `ES2016.Array.Include` | +| `ES2017.object` | +| `ES2017.Intl` | +| `ES2017.SharedMemory` | +| `ES2017.String` | +| `ES2017.TypedArrays` | +| `ES2018.Intl` | +| `ES2018.Promise` | +| `ES2018.RegExp` | +| `ES2019.Array` | +| `ES2019.Full` | +| `ES2019.Object` | +| `ES2019.String` | +| `ES2019.Symbol` | +| `ES2020.Full` | +| `ES2020.String` | +| `ES2020.Symbol.wellknown` | +| `ESNext.AsyncIterable` | +| `ESNext.Array` | +| `ESNext.Intl` | +| `ESNext.Symbol` | + +此列表有可能会过期,你可以在 [TypeScript 源码中](https://github.com/microsoft/TypeScript/tree/master/lib)查看完整列表。 diff --git a/packages/tsconfig-reference/copy/zh/options/module.md b/packages/tsconfig-reference/copy/zh/options/module.md new file mode 100644 index 000000000000..f468b3d53014 --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/module.md @@ -0,0 +1,118 @@ +--- +display: "模块" +oneline: "模块代码生成。" +--- + +设置程序的模块系统。在 模块 参考页面获取更多信息。你很可能要用 `"CommonJS"`。 + +改变 `module` 可能会影响 [`moduleResolution`](#moduleResolution),它也有 [一个参考页](/docs/handbook/module-resolution.html)。 + +下面是这个文件的一些输出例子: + +```ts twoslash +// @filename: constants.ts +export const valueOfPi = 3.142; +// ---cut--- +// @filename: index.ts +import { valueOfPi } from "./constants"; + +export const twoPi = valueOfPi * 2; +``` + +#### `CommonJS` + +```ts twoslash +// @showEmit +// @module: commonjs +// @filename: constants.ts +export const valueOfPi = 3.142; +// ---cut--- +// @filename: index.ts +import { valueOfPi } from "./constants"; + +export const twoPi = valueOfPi * 2; +``` + +#### `UMD` + +```ts twoslash +// @showEmit +// @module: umd +// @filename: constants.ts +export const valueOfPi = 3.142; +// ---cut--- +// @filename: index.ts +import { valueOfPi } from "./constants"; + +export const twoPi = valueOfPi * 2; +``` + +#### `AMD` + +```ts twoslash +// @showEmit +// @module: amd +// @filename: constants.ts +export const valueOfPi = 3.142; +// ---cut--- +// @filename: index.ts +import { valueOfPi } from "./constants"; + +export const twoPi = valueOfPi * 2; +``` + +#### `System` + +```ts twoslash +// @showEmit +// @module: system +// @filename: constants.ts +export const valueOfPi = 3.142; +// ---cut--- +// @filename: index.ts +import { valueOfPi } from "./constants"; + +export const twoPi = valueOfPi * 2; +``` + +#### `ESNext` + +```ts twoslash +// @showEmit +// @module: esnext +// @filename: constants.ts +export const valueOfPi = 3.142; +// ---cut--- +// @filename: index.ts +import { valueOfPi } from "./constants"; + +export const twoPi = valueOfPi * 2; +``` + +#### `ES2020` + +```ts twoslash +// @showEmit +// @module: es2020 +// @filename: constants.ts +export const valueOfPi = 3.142; +// ---cut--- +// @filename: index.ts +import { valueOfPi } from "./constants"; + +export const twoPi = valueOfPi * 2; +``` + +### `None` + +```ts twoslash +// @showEmit +// @module: none +// @filename: constants.ts +export const valueOfPi = 3.142; +// ---cut--- +// @filename: index.ts +import { valueOfPi } from "./constants"; + +export const twoPi = valueOfPi * 2; +``` diff --git a/packages/tsconfig-reference/copy/zh/options/noEmit.md b/packages/tsconfig-reference/copy/zh/options/noEmit.md new file mode 100644 index 000000000000..5fda31ea5a84 --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/noEmit.md @@ -0,0 +1,10 @@ +--- +display: "禁止生成" +oneline: "不在编译中生产文件。" +--- + +禁止编译器生成文件,例如 JavaScript 代码,source-map 或声明。 + +这为另一个工具提供了空间,例如用 [Babel](https://babeljs.io) 或 [swc](https://github.com/swc-project/swc) 来处理将 TypeScript 转换为可以在 JavaScript 环境中运行的文件的过程。 + +然后你可以使用 TypeScript 作为提供编辑器集成的工具,或用来对源码进行类型检查。 diff --git a/packages/tsconfig-reference/copy/zh/options/outDir.md b/packages/tsconfig-reference/copy/zh/options/outDir.md new file mode 100644 index 000000000000..ddac1c32befb --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/outDir.md @@ -0,0 +1,39 @@ +--- +display: "输出目录" +oneline: "为所有生成的文件设置一个输出目录。" +--- + +如果被指定,`.js` (以及 `.d.ts`, `.js.map` 等)将会被生成到这个目录下。 +原始源文件的目录将会被保留,如果计算出的根目录不是你想要的,可以查看 [rootDir](#rootDir)。 + +如果没有指定,`.js` 将被生成至于生成它们的 `.ts` 文件相同的目录中: + +```sh +$ tsc + +example +├── index.js +└── index.ts +``` + +使用类似这样的 `tsconfig.json`: + +```json tsconfig +{ + "compilerOptions": { + "outDir": "dist" + } +} +``` + +使用这些配置运行 `tsc` 时,会将文件移动到指定的 `dist` 文件夹中: + +```sh +$ tsc + +example +├── dist +│ └── index.js +├── index.ts +└── tsconfig.json +``` diff --git a/packages/tsconfig-reference/copy/zh/options/outFile.md b/packages/tsconfig-reference/copy/zh/options/outFile.md new file mode 100644 index 000000000000..4d8f00a8bd9f --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/outFile.md @@ -0,0 +1,11 @@ +--- +display: "输出文件" +oneline: "将所有输出打包到一个 .js 文件中。如果 `declaration` 为 true 还可以指定一个 .d.ts 文件。" +--- + +如果被指定,所有 _全局_ (非模块) 文件将被合并到指定的单个输出文件中。 + +如果 `module` 为 `system` 或 `amd`,所有模块文件也将在所有全局内容之后被合并到这个文件中。 + +注:除非 `module` 是 `None`,`System` 或 `AMD`, 否则不能使用 `outFile`。 +这个选项 _不能_ 用来打包 CommonJS 或 ES6 模块。 diff --git a/packages/tsconfig-reference/copy/zh/options/plugins.md b/packages/tsconfig-reference/copy/zh/options/plugins.md new file mode 100644 index 000000000000..d5f870fd417d --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/plugins.md @@ -0,0 +1,18 @@ +--- +display: "插件" +oneline: "要包含的语言服务插件列表" +--- + +可在编辑器内运行的语言服务插件列表。 + +语言服务插件是一种基于现有 TypeScript 文件向用户提供额外信息的方法。它们可以改进 TypeScript 和编辑器之间的现有信息,或提供自己的错误信息。 + +例如: + +- [ts-sql-plugin](https://github.com/xialvjun/ts-sql-plugin#readme) — 增加了用模板字符串做 SQL 构建器时的风格检查。 +- [typescript-styled-plugin](https://github.com/Microsoft/typescript-styled-plugin) — 在目标字符串中提供 CSS 风格检查。 +- [typescript-eslint-language-service](https://github.com/Quramy/typescript-eslint-language-service) — 在编译器的输出中提供 eslint 的错误信息和修复信息。 +- [ts-graphql-plugin](https://github.com/Quramy/ts-graphql-plugin) — +在 GraphQL 查询目标字符串中提供验证和补全。 + +VS Code 可以让一个扩展 [自动包含语言服务插件](https://code.visualstudio.com/api/references/contribution-points#contributes.typescriptServerPlugins),所以你可以在编辑器中运行一些插件,而不需要在 `tsconfig.json` 中指定他们。 diff --git a/packages/tsconfig-reference/copy/zh/options/removeComments.md b/packages/tsconfig-reference/copy/zh/options/removeComments.md new file mode 100644 index 000000000000..59b565cef7aa --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/removeComments.md @@ -0,0 +1,33 @@ +--- +display: "移除注释" +oneline: "不生成注释。" +--- + +当转换为 JavaScript 时,忽略所有 TypeScript 文件中的注释。默认为 `false`。 + +例如,这是一个有 JSDoc 注释的 TypeScript 文件: + +```ts +/** 'Hello world' 的葡萄牙语翻译 */ +export const helloWorldPTBR = "Olá Mundo"; +``` + +当然 `removeComments` 被设置为 `true`: + +```ts twoslash +// @showEmit +// @removeComments: true +/** 'Hello world' 的葡萄牙语翻译 */ +export const helloWorldPTBR = "Olá Mundo"; +``` + +未设置 `removeComments` 或被设置为 `false`: + +```ts twoslash +// @showEmit +// @removeComments: false +/** 'Hello world' 的葡萄牙语翻译 */ +export const helloWorldPTBR = "Olá Mundo"; +``` + +这意味着你的注释将呈现在 JavaScript 中。 diff --git a/packages/tsconfig-reference/copy/zh/options/rootDir.md b/packages/tsconfig-reference/copy/zh/options/rootDir.md new file mode 100644 index 000000000000..3d2c441d4ede --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/rootDir.md @@ -0,0 +1,66 @@ +--- +display: "根目录" +oneline: "设置你源码的根目录。" +--- + +**默认**: 所有输入的非声明文件中的最长公共路径。若 `composite` 被指定,则是包含 `tsconfig.json` 文件的目录。 + +当 TypeScript 编译文件时,它在输出目录中保持与输入目录中相同的目录结构。 + +例如,假设你有一些输入文件: + +``` +MyProj +├── tsconfig.json +├── core +│ ├── a.ts +│ ├── b.ts +│ ├── sub +│ │ ├── c.ts +├── types.d.ts +``` + +`rootDir` 推断的结构是所有非声明输入文件的最长公共路径,在例子中为 `core/`。 + +如果你的 `outDir` 是 `dist`,TypeScript 将会生成这样的文件树: + +``` +MyProj +├── dist +│ ├── a.ts +│ ├── b.ts +│ ├── sub +│ │ ├── c.ts +``` + +但你可能希望让 `core` 成为输出目录结构的一部分。 +通过在 `tsconfig.json` 中指定 `rootDir: "."`,TypeScript 将会生成这样的文件树: + +``` +MyProj +├── dist +│ ├── core +│ │ ├── a.js +│ │ ├── b.js +│ │ ├── sub +│ │ │ ├── c.js +``` + +重要的是,`rootDir` **不会影响哪些文件被包含在编译中**。 +它与 `tsconfig.json` 中 `include`,`exclude`,or `files` 的选项没有关系。 + +请注意,TypeScript 永远不会将输出文件写入 `outDir` 之外的目录,也不会忽略生成某些文件。 +处于这个原因,`rootDir` 页强制要求所有需要被生成的文件都在 `rootDir` 路径下。 + +例如,假设你有这样的文件树: + +``` +MyProj +├── tsconfig.json +├── core +│ ├── a.ts +│ ├── b.ts +├── helpers.ts +``` + +将 `rootDir` 指定为 `core`,_并且_ 将 `include` 指定为 `*` 是错误的,因为它会创建一个文件(`helpers.ts`),这个文件会被生成在 `outDir` _之外_ (即 `../helpers.js`)。 diff --git a/packages/tsconfig-reference/copy/zh/options/sourceMap.md b/packages/tsconfig-reference/copy/zh/options/sourceMap.md new file mode 100644 index 000000000000..eae2bdfc1cd2 --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/sourceMap.md @@ -0,0 +1,39 @@ +--- +display: "Source Map" +oneline: "为生成的 JavaScript 文件生成 source map 文件。" +--- + +启用生成 [sourcemap files](https://developer.mozilla.org/docs/Tools/Debugger/How_to/Use_a_source_map)。 +这些文件允许调试器和其他工具在使用实际生成的 JavaScript 文件时,显示原始的 TypeScript 代码。 +Source map 文件以 `.js.map` (或 `.jsx.map`)文件的形式被生成到相应的 `.js` 文件输出旁。 + +`.js` 文件将会包含一个 sourcemap 注释,以向外部工具表明文件在哪里。例如: + +```ts +// helloWorld.ts +export declare const helloWorld = "hi"; +``` + +在将 `sourceMap` 设置为 `true` 的情况下编译,会生成如下 JavaScript 文件: + +```js +// helloWorld.js +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.helloWorld = "hi"; +//# sourceMappingURL=// helloWorld.js.map +``` + +并且会生成这个 json 格式的 sourcemap + +```json +// helloWorld.js.map +{ + "version": 3, + "file": "ex.js", + "sourceRoot": "", + "sources": ["../ex.ts"], + "names": [], + "mappings": ";;AAAa,QAAA,UAAU,GAAG,IAAI,CAAA" +} +``` diff --git a/packages/tsconfig-reference/copy/zh/options/target.md b/packages/tsconfig-reference/copy/zh/options/target.md new file mode 100644 index 000000000000..c4751c385360 --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/target.md @@ -0,0 +1,25 @@ +--- +display: "编译目标" +oneline: "设置生成的 JavaScript 语言的版本,并且会包含兼容的库(环境)的定义。" +--- + +现代浏览器支持全部 ES6 的功能,所以 `ES6` 是一个不错的选择。 +如果你的代码部署在旧的环境中,你可以选择设置一个更低的目标;如果你的代码保证会运行在新的环境中,你可以选择一个更高的目标。 + +`target` 的配置将会改变哪些 JS 特性会被降级,而哪些会被完整保留 +例如,如果 `target` 是 ES5 或更低版本,箭头函数 `() => this` 会被转换为等价的 `函数` 表达式。 + +改变 `target` 也会改变 [`lib`](#lib) 选项的默认值。 +你可以根据需要混搭 `target` 和 `lib` 的配置,你也可以为了方便只设置 `target`。 + +如果你只使用 Node.js,这里推荐基于 Node 版本的 `target`: + +| 名称 | 支持的编译目标 | +| ------- | ---------------- | +| Node 8 | `ES2017` | +| Node 10 | `ES2018` | +| Node 12 | `ES2019` | + +这些基于 [node.green](https://node.green) 的支持数据库。 + +特殊的 `ESNext` 值代表你的 TypeScript 所支持的最高版本。这个配置应当被谨慎使用,因为它在不同的 TypeScript 版本之间的含义不同,并且会导致升级更难预测。 diff --git a/packages/tsconfig-reference/copy/zh/options/tsBuildInfoFile.md b/packages/tsconfig-reference/copy/zh/options/tsBuildInfoFile.md new file mode 100644 index 000000000000..6e09cce48a9d --- /dev/null +++ b/packages/tsconfig-reference/copy/zh/options/tsBuildInfoFile.md @@ -0,0 +1,8 @@ +--- +display: "TS 构建信息文件" +oneline: "为 .tsbuildinfo 增量编译信息指定目录。" +--- + +这个选项可以让您指定一个文件来存储增量编译信息,以作为复合工程的一部分,从而可以更快的构建更大的 TypeScript 代码库。你可以 [在手册](/docs/handbook/project-references.html) 阅读更多关于复合工程的内容。 + +这个选项提供了一种方法,可以配置 TypeScript 追踪它存储在磁盘上的文件的位置,用来指示项目的构建状态。—— 默认情况下,它们与你生成的 JavaScript 在同一个文件夹中。 From addb2a72fc995d334b4c858e39561a91c8a10a2a Mon Sep 17 00:00:00 2001 From: Wenlu Wang Date: Mon, 7 Dec 2020 16:52:29 +0800 Subject: [PATCH 2/2] Fix cr issue --- .../copy/zh/options/allowJs.md | 78 +++++++++--------- .../copy/zh/options/checkJs.md | 82 +++++++++---------- .../copy/zh/options/composite.md | 32 ++++---- .../copy/zh/options/incremental.md | 20 ++--- 4 files changed, 104 insertions(+), 108 deletions(-) diff --git a/packages/tsconfig-reference/copy/zh/options/allowJs.md b/packages/tsconfig-reference/copy/zh/options/allowJs.md index 81f6060e83c8..fb69c3fe1f36 100644 --- a/packages/tsconfig-reference/copy/zh/options/allowJs.md +++ b/packages/tsconfig-reference/copy/zh/options/allowJs.md @@ -1,39 +1,39 @@ ---- -display: "允许 JS" -oneline: "允许你的程序包含 JS 文件。使用 checkJS 来获取在这些文件中的错误。" ---- - -允许 JavaScript 文件在你的工程中被引入,而不是仅仅允许 `.ts` 和 `.tsx` 文件。例如这个 JS 文件: - -```js twoslash -// @filename: card.js -export const defaultCardDeck = "Heart"; -``` - -当你引入到一个 TypeScript 文件时将会抛出一个错误: - -```ts twoslash -// @errors: 2307 -// @filename: card.js -module.exports.defaultCardDeck = "Heart"; -// ---cut--- -// @filename: index.ts -import { defaultCardDeck } from "./card"; - -console.log(defaultCardDeck); -``` - -当启用 `allowJs` 后它将被正常引入: - -```ts twoslash -// @filename: card.js -module.exports.defaultCardDeck = "Heart"; -// ---cut--- -// @allowJs -// @filename: index.ts -import { defaultCardDeck } from "./card"; - -console.log(defaultCardDeck); -``` - -这个选项是一种可以允许 `.ts` 和 `.tsx` 与现有的 JavaScript 文件共存的方式。可以用于逐步将 TypeScript 文件逐步添加到 JS 工程中。 +--- +display: "允许 JS" +oneline: "允许你的程序包含 JS 文件。使用 checkJS 来检查在这些文件中的错误。" +--- + +允许 JavaScript 文件在你的工程中被引入,而不是仅仅允许 `.ts` 和 `.tsx` 文件。例如这个 JS 文件: + +```js twoslash +// @filename: card.js +export const defaultCardDeck = "Heart"; +``` + +当你引入到一个 TypeScript 文件时将会抛出一个错误: + +```ts twoslash +// @errors: 2307 +// @filename: card.js +module.exports.defaultCardDeck = "Heart"; +// ---cut--- +// @filename: index.ts +import { defaultCardDeck } from "./card"; + +console.log(defaultCardDeck); +``` + +当启用 `allowJs` 后它将被正常引入: + +```ts twoslash +// @filename: card.js +module.exports.defaultCardDeck = "Heart"; +// ---cut--- +// @allowJs +// @filename: index.ts +import { defaultCardDeck } from "./card"; + +console.log(defaultCardDeck); +``` + +这个选项是一种可以允许 `.ts` 和 `.tsx` 与现有的 JavaScript 文件共存的方式。可以用于逐步将 TypeScript 文件逐步添加到 JS 工程中。 diff --git a/packages/tsconfig-reference/copy/zh/options/checkJs.md b/packages/tsconfig-reference/copy/zh/options/checkJs.md index 5488d2f333bd..6a7042895212 100644 --- a/packages/tsconfig-reference/copy/zh/options/checkJs.md +++ b/packages/tsconfig-reference/copy/zh/options/checkJs.md @@ -1,43 +1,39 @@ ---- -display: "检查 JS" -oneline: "在经过类型检查的 JavaScript 中报告错误。" ---- - -与 `allowJs` 配合使用,当 `checkJs` 被启用时,JavaScript 文件中会报告错误。也就是相当于在项目中所有 JavaScript 文件顶部包含 `// @ts-check`。 - - -Works in tandem with `allowJs`. When `checkJs` is enabled then errors are reported in JavaScript files. This is -the equivalent of including `// @ts-check` at the top of all JavaScript files which are included in your project. - -例如,根据 TypeScript 自带的 `parseFloat` 类型定义,这是不正确的 JavaScript: - -```js -// parseFloat only takes a string -module.exports.pi = parseFloat(3.124); -``` - -当引入到一个 TypeScript 模块: - -```ts twoslash -// @allowJs -// @filename: constants.js -module.exports.pi = parseFloat(3.124); - -// @filename: index.ts -import { pi } from "./constants"; -console.log(pi); -``` - -你将不会得到任何错误。但是如果你开启了 `checkJs` 选项,那么你可以从 JavaScript 文件中得到错误信息。 - -```ts twoslash -// @errors: 2345 -// @allowjs: true -// @checkjs: true -// @filename: constants.js -module.exports.pi = parseFloat(3.124); - -// @filename: index.ts -import { pi } from "./constants"; -console.log(pi); -``` +--- +display: "检查 JS" +oneline: "在经过类型检查的 JavaScript 中报告错误。" +--- + +与 `allowJs` 配合使用,当 `checkJs` 被启用时,JavaScript 文件中会报告错误。也就是相当于在项目中所有 JavaScript 文件顶部包含 `// @ts-check`。 + +例如,根据 TypeScript 自带的 `parseFloat` 类型定义,这是不正确的 JavaScript: + +```js +// parseFloat 仅接受一个字符串作为参数 +module.exports.pi = parseFloat(3.124); +``` + +当引入到一个 TypeScript 模块: + +```ts twoslash +// @allowJs +// @filename: constants.js +module.exports.pi = parseFloat(3.124); + +// @filename: index.ts +import { pi } from "./constants"; +console.log(pi); +``` + +你将不会得到任何错误。但是如果你开启了 `checkJs` 选项,那么你可以从 JavaScript 文件中得到错误信息。 + +```ts twoslash +// @errors: 2345 +// @allowjs: true +// @checkjs: true +// @filename: constants.js +module.exports.pi = parseFloat(3.124); + +// @filename: index.ts +import { pi } from "./constants"; +console.log(pi); +``` diff --git a/packages/tsconfig-reference/copy/zh/options/composite.md b/packages/tsconfig-reference/copy/zh/options/composite.md index 1a2526aa32f6..71e6bec3d34d 100644 --- a/packages/tsconfig-reference/copy/zh/options/composite.md +++ b/packages/tsconfig-reference/copy/zh/options/composite.md @@ -1,16 +1,16 @@ ---- -display: "组合" -oneline: "启用约束以使工程可以引用其他工程来用于构建。" ---- - -`composite` 选项会强制执行某些约束,使得构建工具(包括 在 `--build` 模式下的 TypeScript 本身)可以快速确定一个工程是否已经建立。 - -当此设置开启时: - -- 如果没有明确指定 `rootDir`,则默认为包含 `tsconfig.json` 文件的目录。 - -- 所有实现的文件必须由 `include` 来匹配,或在 `files` 数组中指定。如果违反了这一约束,`tsc` 将告诉你哪些文件没有被指定。 - -- `declaration` 默认为 `true`。 - -你可以在[手册](https://www.typescriptlang.org/docs/handbook/project-references.html)中找到关于 TypeScript 工程的文档。 +--- +display: "组合" +oneline: "启用约束以使工程可以引用其他工程来用于构建。" +--- + +`composite` 选项会强制执行某些约束,使得构建工具(包括 在 `--build` 模式下的 TypeScript 本身)可以快速确定一个工程是否已经建立。 + +当此设置开启时: + +- 如果没有明确指定 `rootDir`,则默认为包含 `tsconfig.json` 文件的目录。 + +- 所有实现的文件必须由 `include` 来匹配,或在 `files` 数组中指定。如果违反了这一约束,`tsc` 将告诉你哪些文件没有被指定。 + +- `declaration` 默认为 `true`。 + +你可以在[手册](https://www.typescriptlang.org/docs/handbook/project-references.html)中找到关于 TypeScript 工程的文档。 diff --git a/packages/tsconfig-reference/copy/zh/options/incremental.md b/packages/tsconfig-reference/copy/zh/options/incremental.md index 6590fe86a0fa..ae43a3e62b7b 100644 --- a/packages/tsconfig-reference/copy/zh/options/incremental.md +++ b/packages/tsconfig-reference/copy/zh/options/incremental.md @@ -1,10 +1,10 @@ ---- -display: "增量" -oneline: "为支持增量编译工程,保存 .tsbuildinfo 文件" ---- - -使 TypeScript 将上次编译的工程图信息保存到磁盘上的文件中。这将会在您编译输出的同一文件夹中创建一系列 `.tsbuildinfo` 文件。 -它们不会再运行时被您的 JavaScript 使用,并且可以被安全的删除。 -你可以在 [3.4 发布日志](/docs/handbook/release-notes/typescript-3-4.html#faster-subsequent-builds-with-the---incremental-flag) 中获取更多关于该选项的内容。 - -可以使用 [`tsBuildInfoFile`](#tsBuildInfoFile) 来控制文件被编译到哪个文件夹。 +--- +display: "增量" +oneline: "为支持增量编译工程,保存 .tsbuildinfo 文件" +--- + +使 TypeScript 将上次编译的工程图信息保存到磁盘上的文件中。这将会在您编译输出的同一文件夹中创建一系列 `.tsbuildinfo` 文件。 +它们不会再运行时被您的 JavaScript 使用,并且可以被安全的删除。 +你可以在 [3.4 发布日志](/docs/handbook/release-notes/typescript-3-4.html#faster-subsequent-builds-with-the---incremental-flag) 中获取更多关于该选项的内容。 + +可以使用 [`tsBuildInfoFile`](#tsBuildInfoFile) 来控制 `.tsbuildinfo` 文件被编译到哪个文件夹。