使用 CLI
在本地运行tsc
会编译由tsconfig.json
定义的最接近的项目,或者您可以通过传递要编译的文件的通配符来编译一组 TypeScript 文件。当在命令行上指定输入文件时,会忽略tsconfig.json
文件。
sh
# Run a compile based on a backwards look through the fs for a tsconfig.jsontsc# Emit JS for just the index.ts with the compiler defaultstsc index.ts# Emit JS for any .ts files in the folder src, with the default settingstsc src/*.ts# Emit files referenced in with the compiler settings from tsconfig.production.jsontsc --project tsconfig.production.json# Emit d.ts files for a js file with showing compiler options which are booleanstsc index.js --declaration --emitDeclarationOnly# Emit a single .js file from two files via compiler options which take string argumentstsc app.ts util.ts --target esnext --outfile index.js
编译器选项
如果您想了解更多关于 tsconfig 中编译器选项的信息,请查看TSConfig 参考
CLI 命令
标志 | 类型 | |
---|---|---|
--all |
|
|
显示所有编译器选项。 | ||
--generateTrace |
|
|
生成事件跟踪和类型列表。 | ||
--help |
|
|
提供有关 CLI 的本地帮助信息。 | ||
--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 |
|
|
在源文件中为装饰的声明发出设计类型元数据。 | ||
--esModuleInterop |
|
如果 |
发出额外的 JavaScript 以便于支持导入 CommonJS 模块。这将为类型兼容性启用 | ||
--exactOptionalPropertyTypes |
|
|
将可选属性类型解释为编写时的类型,而不是添加 | ||
--experimentalDecorators |
|
|
启用对 TC39 阶段 2 草案装饰器的实验性支持。 | ||
--explainFiles |
|
|
打印编译期间读取的文件,包括为什么包含该文件。 | ||
--extendedDiagnostics |
|
|
在构建后输出更详细的编译器性能信息。 | ||
--forceConsistentCasingInFileNames |
|
|
确保导入中的大小写正确。 | ||
--generateCpuProfile |
|
|
为调试目的发出编译运行的 v8 CPU 配置文件。 | ||
--importHelpers |
|
|
允许每个项目从 tslib 导入辅助函数,而不是每个文件都包含它们。 | ||
--importsNotUsedAsValues |
|
|
指定仅用于类型的导入的发出/检查行为。 | ||
--incremental |
|
如果 |
保存 .tsbuildinfo 文件以允许对项目进行增量编译。 | ||
--inlineSourceMap |
|
|
在发出的 JavaScript 中包含源映射文件。 | ||
--inlineSources |
|
|
在发出的 JavaScript 中的源映射中包含源代码。 | ||
--isolatedModules |
|
|
确保每个文件都可以安全地进行转译,而无需依赖其他导入。 | ||
--jsx |
|
|
指定生成什么 JSX 代码。 | ||
--jsxFactory |
|
|
指定在针对 React JSX 发射时使用的 JSX 工厂函数,例如 'React.createElement' 或 'h'。 | ||
--jsxFragmentFactory |
|
|
指定在针对 React JSX 发射时用于片段的 JSX 片段引用,例如 'React.Fragment' 或 'Fragment'。 | ||
--jsxImportSource |
|
|
指定在使用 | ||
--keyofStringsOnly |
|
|
使 keyof 仅返回字符串,而不是字符串、数字或符号。旧选项。 | ||
--lib |
|
|
指定一组捆绑的库声明文件,这些文件描述目标运行时环境。 | ||
--listEmittedFiles |
|
|
在编译后打印发出的文件的名称。 | ||
--listFiles |
|
|
打印编译期间读取的所有文件。 | ||
--mapRoot |
|
|
指定调试器应查找映射文件的位置,而不是生成的位置。 | ||
--maxNodeModuleJsDepth |
|
|
指定用于检查来自 | ||
--module |
|
如果 |
指定生成什么模块代码。 | ||
--moduleDetection |
|
“auto”:将包含导入、导出、import.meta、jsx(使用 jsx: react-jsx)或 esm 格式(使用 module: node16+)的文件视为模块。 |
指定用于检测文件是脚本还是模块的方法。 | ||
--moduleResolution |
|
如果 |
指定 TypeScript 如何从给定的模块说明符查找文件。 | ||
--moduleSuffixes |
|
|
解析模块时搜索的文件名后缀列表。 | ||
--newLine |
|
特定于平台。 |
设置用于发出文件的换行符。 | ||
--noEmit |
|
|
禁用从编译中发出文件。 | ||
--noEmitHelpers |
|
|
禁用在编译后的输出中生成自定义辅助函数,例如 | ||
--noEmitOnError |
|
|
如果报告任何类型检查错误,则禁用发出文件。 | ||
--noErrorTruncation |
|
|
禁用在错误消息中截断类型。 | ||
--noFallthroughCasesInSwitch |
|
|
启用对 switch 语句中贯穿情况的错误报告。 | ||
--noImplicitAny |
|
如果 |
启用对隐式 | ||
--noImplicitOverride |
|
|
确保派生类中的重写成员用 override 修饰符标记。 | ||
--noImplicitReturns |
|
|
启用对在函数中未显式返回的代码路径的错误报告。 | ||
--noImplicitThis |
|
如果 |
当 | ||
--noImplicitUseStrict |
|
|
禁用在发出的 JavaScript 文件中添加“use strict”指令。 | ||
--noLib |
|
|
禁用包含任何库文件,包括默认的 lib.d.ts。 | ||
--noPropertyAccessFromIndexSignature |
|
|
强制对使用索引类型声明的键使用索引访问器。 | ||
--noResolve |
|
|
禁止 | ||
--noStrictGenericChecks |
|
|
禁用函数类型中泛型签名的严格检查。 | ||
--noUncheckedIndexedAccess |
|
|
在使用索引访问类型时,向类型添加 | ||
--noUnusedLocals |
|
|
当局部变量未被读取时,启用错误报告。 | ||
--noUnusedParameters |
|
|
当函数参数未被读取时,引发错误。 | ||
--out |
|
|
已弃用的设置。请使用 | ||
--outDir |
|
|
指定所有已发出文件的输出文件夹。 | ||
--outFile |
|
|
指定一个文件,将所有输出捆绑到一个 JavaScript 文件中。如果 | ||
--paths |
|
|
指定一组条目,将导入重新映射到其他查找位置。 | ||
--plugins |
|
|
指定要包含的语言服务插件列表。 | ||
--preserveConstEnums |
|
|
禁用在生成的代码中擦除 | ||
--preserveSymlinks |
|
|
禁用将符号链接解析为其实际路径。这与节点中的相同标志相关联。 | ||
--preserveValueImports |
|
|
在 JavaScript 输出中保留未使用的导入值,否则这些值将被删除。 | ||
--preserveWatchOutput |
|
|
禁用在监视模式下清除控制台。 | ||
--pretty |
|
|
在 TypeScript 的输出中启用颜色和格式化,使编译器错误更易于阅读。 | ||
--reactNamespace |
|
|
指定为 | ||
--removeComments |
|
|
禁用发出注释。 | ||
--resolveJsonModule |
|
|
启用导入 .json 文件。 | ||
--resolvePackageJsonExports |
|
|
在解析包导入时使用 package.json 的 'exports' 字段。 | ||
--resolvePackageJsonImports |
|
|
在解析导入时使用 package.json 的 'imports' 字段。 | ||
--rootDir |
|
从输入文件列表中计算得出。 |
指定源文件中的根文件夹。 | ||
--rootDirs |
|
从输入文件列表中计算得出。 |
允许将多个文件夹视为一个文件夹,以便在解析模块时进行处理。 | ||
--skipDefaultLibCheck |
|
|
跳过对 TypeScript 附带的 .d.ts 文件进行类型检查。 | ||
--skipLibCheck |
|
|
跳过对所有 .d.ts 文件进行类型检查。 | ||
--sourceMap |
|
|
为生成的 JavaScript 文件创建源映射文件。 | ||
--sourceRoot |
|
|
指定调试器查找参考源代码的根路径。 | ||
--strict |
|
|
启用所有严格类型检查选项。 | ||
--strictBindCallApply |
|
如果 |
检查 | ||
--strictFunctionTypes |
|
如果 |
在分配函数时,检查以确保参数和返回值是子类型兼容的。 | ||
--strictNullChecks |
|
如果 |
在类型检查时,考虑 | ||
--strictPropertyInitialization |
|
如果 |
检查在构造函数中声明但未设置的类属性。 | ||
--stripInternal |
|
|
禁用发出其 JSDoc 注释中包含 | ||
--suppressExcessPropertyErrors |
|
|
在创建对象字面量时,禁用报告多余属性错误。 | ||
--suppressImplicitAnyIndexErrors |
|
|
当索引缺少索引签名的对象时,抑制 | ||
--target |
|
|
设置生成的 JavaScript 的 JavaScript 语言版本,并包含兼容的库声明。 | ||
--traceResolution |
|
|
记录在 | ||
--tsBuildInfoFile |
|
|
用于存储 | ||
--typeRoots |
|
|
指定多个充当 | ||
--types |
|
|
指定要包含的类型包名称,而无需在源文件中引用它们。 | ||
--useDefineForClassFields |
|
如果 |
发出符合 ECMAScript 标准的类字段。 | ||
--useUnknownInCatchVariables |
|
如果 |
将默认的 catch 子句变量设为 | ||
--verbatimModuleSyntax |
|
|
不转换或省略任何未标记为类型专用的导入或导出,确保它们根据“module”设置以输出文件的格式写入。 |
相关
- 每个选项都在TSConfig 参考中进行了详细说明。
- 了解如何使用
tsconfig.json
文件。 - 了解如何在MSBuild 项目中工作。