tsc CLI 选项
使用 CLI
本地运行 tsc 将编译由 tsconfig.json 定义的最近的项目,或者你可以通过传入一组文件 glob 来编译一组 TypeScript 文件。当在命令行上指定输入文件时,将忽略 tsconfig.json 文件。
# 基于向后查找文件系统中的 tsconfig.json 进行编译
tsc
# 仅使用编译器默认值编译 index.ts
tsc index.ts
# 使用默认设置编译文件夹 src 中的任何 .ts 文件
tsc src/*.ts
# 使用 tsconfig.production.json 中的编译器设置编译引用的文件
tsc --project tsconfig.production.json
# 为 js 文件输出 d.ts 文件,并显示布尔类型的编译器选项
tsc index.js --declaration --emitDeclarationOnly
# 通过接受字符串参数的编译器选项从两个文件输出一个 .js 文件
tsc app.ts util.ts --target esnext --outfile index.js编译器选项
如果你正在寻找有关 tsconfig 中编译器选项的更多信息,请查看 TSConfig 参考
CLI 命令
| 标志 | 类型 | |
|---|---|---|
--all |
| |
显示所有编译器选项。 | ||
--help |
| |
提供有关 CLI 帮助的本地信息。 | ||
--ignoreConfig |
| |
忽略找到的 tsconfig,使用命令行选项和文件进行构建。 | ||
--init |
| |
初始化 TypeScript 项目并创建一个 tsconfig.json 文件。 | ||
--listFilesOnly |
| |
打印属于编译的文件名称,然后停止处理。 | ||
--locale |
| |
设置 TypeScript 消息的语言。这不会影响输出。 | ||
--project |
| |
编译给定路径下的配置文件,或包含 'tsconfig.json' 的文件夹中的项目。 | ||
--showConfig |
| |
打印最终配置而不是构建。 | ||
--version |
| |
打印编译器的版本。 | ||
构建选项
| 标志 | 类型 | |
|---|---|---|
--build |
| |
构建一个或多个项目及其依赖项(如果已过时)。 | ||
--clean |
| |
删除所有项目的输出。 | ||
--dry |
| |
显示将要构建的内容(如果与 '--clean' 一起指定,则显示将要删除的内容)。 | ||
--force |
| |
构建所有项目,包括那些看起来是最新的项目。 | ||
--verbose |
| |
启用详细日志记录。 | ||
监视选项
| 标志 | 类型 | |
|---|---|---|
--excludeDirectories |
| |
从监视过程中移除一个目录列表。 | ||
--excludeFiles |
| |
从监视模式处理中移除一个文件列表。 | ||
--fallbackPolling |
| |
指定当系统用完原生文件监视器时,监视器应使用哪种方法。 | ||
--synchronousWatchDirectory |
| |
在不原生支持递归监视的平台上,同步调用回调并更新目录监视器的状态。 | ||
--watch |
| |
监视输入文件。 | ||
--watchDirectory |
| |
指定在缺乏递归文件监视功能的系统上如何监视目录。 | ||
--watchFile |
| |
指定 TypeScript 监视模式的工作方式。 | ||
编译器标志
| 标志 | 类型 | 默认值 |
|---|---|---|
--allowArbitraryExtensions |
|
|
允许导入任何扩展名的文件,前提是存在声明文件。 | ||
--allowImportingTsExtensions |
|
|
允许导入包含 TypeScript 文件扩展名。 | ||
--allowJs |
|
|
允许 JavaScript 文件成为程序的一部分。使用 | ||
--allowSyntheticDefaultImports |
|
|
当模块没有默认导出时,允许 'import x from y'。 | ||
--allowUmdGlobalAccess |
|
|
允许从模块访问 UMD 全局变量。 | ||
--allowUnreachableCode |
| |
禁止报告无法访问的代码错误。 | ||
--allowUnusedLabels |
| |
禁止报告未使用的标签错误。 | ||
--alwaysStrict |
|
|
确保始终输出 'use strict'。 | ||
--assumeChangesOnlyAffectDirectDependencies |
|
|
在使用 | ||
--baseUrl |
| |
指定解析裸说明符模块名称的基本目录。 | ||
--charset |
|
|
不再支持。在早期版本中,手动设置读取文件的文本编码。 | ||
--checkJs |
|
|
在类型检查的 JavaScript 文件中启用错误报告。 | ||
--composite |
|
|
启用允许 TypeScript 项目与项目引用一起使用的约束。 | ||
--customConditions |
| |
在解析导入时,除了解析器特定的默认值之外要设置的条件。 | ||
--declaration |
|
|
从项目中的 TypeScript 和 JavaScript 文件生成 .d.ts 文件。 | ||
--declarationDir |
| |
指定生成的声明文件的输出目录。 | ||
--declarationMap |
|
|
为 d.ts 文件创建源映射。 | ||
--diagnostics |
|
|
构建后输出编译器性能信息。 | ||
--disableReferencedProjectLoad |
|
|
减少 TypeScript 自动加载的项目数量。 | ||
--disableSizeLimit |
|
|
移除 TypeScript 语言服务器中 JavaScript 文件总源代码大小的 20mb 上限。 | ||
--disableSolutionSearching |
|
|
在编辑时,让项目退出多项目引用检查。 | ||
--disableSourceOfProjectReferenceRedirect |
|
|
在引用复合项目时,禁用优先使用源文件而不是声明文件。 | ||
--downlevelIteration |
|
|
输出更符合规范但更冗长且性能较低的迭代 JavaScript。 | ||
--emitBOM |
|
|
在输出文件的开头输出 UTF-8 字节顺序标记(BOM)。 | ||
--emitDeclarationOnly |
|
|
仅输出 d.ts 文件,不输出 JavaScript 文件。 | ||
--emitDecoratorMetadata |
|
|
为源文件中带有装饰器的声明输出设计时类型元数据。 | ||
--erasableSyntaxOnly |
|
|
不允许不属于 ECMAScript 的运行时结构。 | ||
--esModuleInterop |
|
|
输出额外的 JavaScript 以简化对导入 CommonJS 模块的支持。这为类型兼容性启用了 | ||
--exactOptionalPropertyTypes |
|
|
按照编写的方式解释可选属性类型,而不是添加 | ||
--experimentalDecorators |
|
|
启用对 TC39 第 2 阶段草案装饰器的实验性支持。 | ||
--explainFiles |
|
|
打印编译期间读取的文件,包括包含它们的原因。 | ||
--extendedDiagnostics |
|
|
构建后输出更详细的编译器性能信息。 | ||
--forceConsistentCasingInFileNames |
|
|
确保导入中的大小写正确。 | ||
--generateCpuProfile |
|
|
输出编译器运行的 v8 CPU profile 用于调试。 | ||
--generateTrace |
| |
生成事件跟踪和类型列表。 | ||
--importHelpers |
|
|
允许从 tslib 每个项目导入一次辅助函数,而不是每个文件都包含它们。 | ||
--importsNotUsedAsValues |
|
|
指定仅用于类型的导入的输出/检查行为。 | ||
--incremental |
|
|
保存 .tsbuildinfo 文件以允许项目的增量编译。 | ||
--inlineSourceMap |
|
|
在输出的 JavaScript 中包含源映射文件。 | ||
--inlineSources |
|
|
在输出的 JavaScript 的源映射中包含源代码。 | ||
--isolatedDeclarations |
|
|
要求导出有足够的注解,以便其他工具可以轻松生成声明文件。 | ||
--isolatedModules |
|
|
确保每个文件可以安全地转译,而无需依赖其他导入。 | ||
--jsx |
| |
指定生成的 JSX 代码。 | ||
--jsxFactory |
|
|
指定目标为 React JSX 输出时使用的 JSX 工厂函数,例如 'React.createElement' 或 'h'。 | ||
--jsxFragmentFactory |
|
|
指定目标为 React JSX 输出时用于片段的 JSX 片段引用,例如 'React.Fragment' 或 'Fragment'。 | ||
--jsxImportSource |
|
|
当使用 | ||
--keyofStringsOnly |
|
|
使 keyof 仅返回字符串,而不是字符串、数字或符号。遗留选项。 | ||
--lib |
| |
指定一组描述目标运行时环境的捆绑库声明文件。 | ||
--libReplacement |
|
|
允许用自定义文件替换默认的 | ||
--listEmittedFiles |
|
|
编译后打印输出文件的名称。 | ||
--listFiles |
|
|
打印编译期间读取的所有文件。 | ||
--mapRoot |
| |
指定调试器定位映射文件的位置,而不是生成的位置。 | ||
--maxNodeModuleJsDepth |
|
|
指定用于检查 | ||
--module |
|
|
指定生成的模块代码。 | ||
--moduleDetection |
| "auto": 将具有导入、导出、import.meta、jsx(使用 jsx: react-jsx)或 esm 格式(使用 module: node16+)的文件视为模块。 |
指定用于检测文件是脚本还是模块的方法。 | ||
--moduleResolution |
|
|
指定 TypeScript 如何根据给定的模块说明符查找文件。 | ||
--moduleSuffixes |
| |
解析模块时要搜索的文件名后缀列表。 | ||
--newLine |
|
|
设置输出文件的换行符。 | ||
--noCheck |
|
|
禁用完整的类型检查(仅报告关键的解析和输出错误)。 | ||
--noEmit |
|
|
禁止从编译输出文件。 | ||
--noEmitHelpers |
|
|
禁止在编译输出中生成像 | ||
--noEmitOnError |
|
|
如果报告任何类型检查错误,则禁止输出文件。 | ||
--noErrorTruncation |
|
|
禁止在错误消息中截断类型。 | ||
--noFallthroughCasesInSwitch |
|
|
对 switch 语句中的贯穿 case 启用错误报告。 | ||
--noImplicitAny |
|
|
对带有隐含 | ||
--noImplicitOverride |
|
|
确保派生类中覆盖的成员使用 override 修饰符标记。 | ||
--noImplicitReturns |
|
|
对函数中未显式返回的代码路径启用错误报告。 | ||
--noImplicitThis |
|
|
当 | ||
--noImplicitUseStrict |
|
|
禁止在输出的 JavaScript 文件中添加 'use strict' 指令。 | ||
--noLib |
|
|
禁用包含任何库文件,包括默认的 lib.d.ts。 | ||
--noPropertyAccessFromIndexSignature |
|
|
强制对使用索引类型声明的键使用索引访问器。 | ||
--noResolve |
|
|
禁止 | ||
--noStrictGenericChecks |
|
|
禁用函数类型中泛型签名的严格检查。 | ||
--noUncheckedIndexedAccess |
|
|
当使用索引访问时,向类型添加 | ||
--noUncheckedSideEffectImports |
|
|
检查副作用导入。 | ||
--noUnusedLocals |
|
|
当局部变量未被读取时启用错误报告。 | ||
--noUnusedParameters |
|
|
当函数参数未被读取时引发错误。 | ||
--out |
| |
已弃用的设置。改用 | ||
--outDir |
| |
指定所有输出文件的输出文件夹。 | ||
--outFile |
| |
指定一个将所有输出捆绑到一个 JavaScript 文件中的文件。如果 | ||
--paths |
| |
指定一组将导入重新映射到其他查找位置的条目。 | ||
--plugins |
| |
指定要包含的语言服务插件列表。 | ||
--preserveConstEnums |
|
|
禁止在生成的代码中擦除 | ||
--preserveSymlinks |
|
|
禁止将符号链接解析为其真实路径。这对应于 node 中的相同标志。 | ||
--preserveValueImports |
|
|
在 JavaScript 输出中保留未使用的导入值,否则这些值将被删除。 | ||
--preserveWatchOutput |
|
|
在监视模式下禁用擦除控制台。 | ||
--pretty |
|
|
在 TypeScript 的输出中启用颜色和格式,使编译器错误更易于阅读。 | ||
--reactNamespace |
|
|
指定为 | ||
--removeComments |
|
|
禁止输出注释。 | ||
--resolveJsonModule |
|
|
启用导入 .json 文件。 | ||
--resolvePackageJsonExports |
|
|
在解析包导入时使用 package.json 的 'exports' 字段。 | ||
--resolvePackageJsonImports |
|
|
在解析导入时使用 package.json 的 'imports' 字段。 | ||
--rewriteRelativeImportExtensions |
|
|
在相对导入路径中将 | ||
--rootDir |
| 根据输入文件列表计算。 |
指定源文件中的根文件夹。 | ||
--rootDirs |
| 根据输入文件列表计算。 |
允许将多个文件夹视为一个,以解析模块。 | ||
--skipDefaultLibCheck |
|
|
跳过 TypeScript 附带的 .d.ts 文件的类型检查。 | ||
--skipLibCheck |
|
|
跳过所有 .d.ts 文件的类型检查。 | ||
--sourceMap |
|
|
为输出的 JavaScript 文件创建源映射文件。 | ||
--sourceRoot |
| |
指定调试器查找引用源代码的根路径。 | ||
--stableTypeOrdering |
|
|
确保类型在编译之间稳定且确定地排序。 | ||
--stopBuildOnErrors |
| |
在上游项目出错时跳过构建下游项目。 | ||
--strict |
|
|
启用所有严格类型检查选项。 | ||
--strictBindCallApply |
|
|
检查 | ||
--strictBuiltinIteratorReturn |
|
|
内置迭代器使用 undefined 而不是 any 作为 TReturn 类型实例化。 | ||
--strictFunctionTypes |
|
|
分配函数时,检查以确保参数和返回值是子类型兼容的。 | ||
--strictNullChecks |
|
|
进行类型检查时,考虑 | ||
--strictPropertyInitialization |
|
|
检查声明但在构造函数中未设置的类属性。 | ||
--stripInternal |
|
|
禁止输出在 JSDoc 注释中包含 | ||
--suppressExcessPropertyErrors |
|
|
在创建对象字面量期间禁止报告多余属性错误。 | ||
--suppressImplicitAnyIndexErrors |
|
|
在索引缺少索引签名的对象时,抑制 | ||
--target |
|
|
设置输出 JavaScript 的 JavaScript 语言版本,并包含兼容的库声明。 | ||
--traceResolution |
|
|
记录在 | ||
--tsBuildInfoFile |
|
|
存储 | ||
--typeRoots |
| |
指定多个充当 | ||
--types |
| |
指定要包含的类型包名称,而无需在源文件中引用。 | ||
--useDefineForClassFields |
|
|
输出符合 ECMAScript 标准的类字段。 | ||
--useUnknownInCatchVariables |
|
|
默认将 catch 子句变量设置为 | ||
--verbatimModuleSyntax |
|
|
不转换或省略任何未标记为仅类型的导入或导出,确保它们根据 'module' 设置以输出文件的格式写入。 | ||
相关
- 每个选项在 TSConfig 参考 中都有完整说明。
- 学习如何使用
tsconfig.json文件。 - 学习如何在 MSBuild 项目中工作。