tsc CLI 选项

使用 CLI

在本地运行tsc会编译由tsconfig.json定义的最接近的项目,或者您可以通过传递要编译的文件的通配符来编译一组 TypeScript 文件。当在命令行上指定输入文件时,会忽略tsconfig.json文件。

sh
# Run a compile based on a backwards look through the fs for a tsconfig.json
tsc
# Emit JS for just the index.ts with the compiler defaults
tsc index.ts
# Emit JS for any .ts files in the folder src, with the default settings
tsc src/*.ts
# Emit files referenced in with the compiler settings from tsconfig.production.json
tsc --project tsconfig.production.json
# Emit d.ts files for a js file with showing compiler options which are booleans
tsc index.js --declaration --emitDeclarationOnly
# Emit a single .js file from two files via compiler options which take string arguments
tsc 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

fixedintervalpriorityintervaldynamicpriorityfixedchunksize

指定当系统用完原生文件监视器时,监视器应使用哪种方法。

--synchronousWatchDirectory

布尔值

在不支持递归监视的平台上,同步调用回调并更新目录监视器的状态。

--watch

布尔值

监视输入文件。

--watchDirectory

usefseventsfixedpollingintervaldynamicprioritypollingfixedchunksizepolling

指定在缺乏递归文件监视功能的系统上如何监视目录。

--watchFile

fixedpollingintervalprioritypollingintervaldynamicprioritypollingfixedchunksizepollingusefseventsusefseventsonparentdirectory

指定 TypeScript 监视模式的工作方式。

编译器标志

标志 类型 默认值
--allowArbitraryExtensions

布尔值

false

启用导入任何扩展名的文件,前提是存在声明文件。

--allowImportingTsExtensions

布尔值

false

允许导入包含 TypeScript 文件扩展名。

--allowJs

布尔值

false

允许 JavaScript 文件成为程序的一部分。使用 checkJS 选项从这些文件中获取错误。

--allowSyntheticDefaultImports

布尔值

如果 esModuleInterop 启用、modulesystemmoduleResolutionbundler,则为 true;否则为 false

允许在模块没有默认导出时使用 'import x from y'。

--allowUmdGlobalAccess

布尔值

false

允许从模块访问 UMD 全局变量。

--allowUnreachableCode

布尔值

禁用对不可达代码的错误报告。

--allowUnusedLabels

布尔值

禁用对未使用标签的错误报告。

--alwaysStrict

布尔值

如果 strict,则为 true;否则为 false

确保始终发出 'use strict'。

--assumeChangesOnlyAffectDirectDependencies

布尔值

false

在使用 incrementalwatch 模式进行重新编译时,假设文件内的更改只会影响直接依赖它的文件。

--baseUrl

字符串

指定解析裸规范模块名称的基目录。

--charset

字符串

utf8

不再支持。在早期版本中,手动设置用于读取文件的文本编码。

--checkJs

布尔值

false

启用类型检查 JavaScript 文件中的错误报告。

--composite

布尔值

false

启用约束,允许 TypeScript 项目与项目引用一起使用。

--customConditions

列表

在解析导入时,除了解析器特定的默认值之外,要设置的条件。

--declaration

布尔值

如果 compositetrue;否则为 false

从项目中的 TypeScript 和 JavaScript 文件生成 .d.ts 文件。

--declarationDir

字符串

指定生成的声明文件的输出目录。

--declarationMap

布尔值

false

为 d.ts 文件创建源映射。

--diagnostics

布尔值

false

在构建后输出编译器性能信息。

--disableReferencedProjectLoad

布尔值

false

减少 TypeScript 自动加载的项目数量。

--disableSizeLimit

布尔值

false

删除 TypeScript 语言服务器中 JavaScript 文件的总源代码大小为 20mb 的限制。

--disableSolutionSearching

布尔值

false

在编辑时,将项目排除在多项目引用检查之外。

--disableSourceOfProjectReferenceRedirect

布尔值

false

禁用在引用复合项目时优先使用源文件而不是声明文件。

--downlevelIteration

布尔值

false

为迭代发出更符合标准,但更冗长且性能更低的 JavaScript。

--emitBOM

布尔值

false

在输出文件的开头发出 UTF-8 字节顺序标记 (BOM)。

--emitDeclarationOnly

布尔值

false

仅输出 d.ts 文件,而不输出 JavaScript 文件。

--emitDecoratorMetadata

布尔值

false

在源文件中为装饰的声明发出设计类型元数据。

--esModuleInterop

布尔值

如果 modulenode16nodenext,则为 true;否则为 false

发出额外的 JavaScript 以便于支持导入 CommonJS 模块。这将为类型兼容性启用 allowSyntheticDefaultImports

--exactOptionalPropertyTypes

布尔值

false

将可选属性类型解释为编写时的类型,而不是添加 undefined

--experimentalDecorators

布尔值

false

启用对 TC39 阶段 2 草案装饰器的实验性支持。

--explainFiles

布尔值

false

打印编译期间读取的文件,包括为什么包含该文件。

--extendedDiagnostics

布尔值

false

在构建后输出更详细的编译器性能信息。

--forceConsistentCasingInFileNames

布尔值

true

确保导入中的大小写正确。

--generateCpuProfile

字符串

profile.cpuprofile

为调试目的发出编译运行的 v8 CPU 配置文件。

--importHelpers

布尔值

false

允许每个项目从 tslib 导入辅助函数,而不是每个文件都包含它们。

--importsNotUsedAsValues

removepreserveerror

remove

指定仅用于类型的导入的发出/检查行为。

--incremental

布尔值

如果 compositetrue;否则为 false

保存 .tsbuildinfo 文件以允许对项目进行增量编译。

--inlineSourceMap

布尔值

false

在发出的 JavaScript 中包含源映射文件。

--inlineSources

布尔值

false

在发出的 JavaScript 中的源映射中包含源代码。

--isolatedModules

布尔值

false

确保每个文件都可以安全地进行转译,而无需依赖其他导入。

--jsx

preservereactreact-nativereact-jsxreact-jsxdev

指定生成什么 JSX 代码。

--jsxFactory

字符串

React.createElement

指定在针对 React JSX 发射时使用的 JSX 工厂函数,例如 'React.createElement' 或 'h'。

--jsxFragmentFactory

字符串

React.Fragment

指定在针对 React JSX 发射时用于片段的 JSX 片段引用,例如 'React.Fragment' 或 'Fragment'。

--jsxImportSource

字符串

react

指定在使用 jsx: react-jsx* 时用于导入 JSX 工厂函数的模块说明符。

--keyofStringsOnly

布尔值

false

使 keyof 仅返回字符串,而不是字符串、数字或符号。旧选项。

--lib

列表

指定一组捆绑的库声明文件,这些文件描述目标运行时环境。

--listEmittedFiles

布尔值

false

在编译后打印发出的文件的名称。

--listFiles

布尔值

false

打印编译期间读取的所有文件。

--mapRoot

字符串

指定调试器应查找映射文件的位置,而不是生成的位置。

--maxNodeModuleJsDepth

number

0

指定用于检查来自 node_modules 的 JavaScript 文件的最大文件夹深度。仅适用于 allowJs

--module

nonecommonjsamdumdsystemes6/es2015es2020es2022esnextnode16nodenext

如果 targetES3ES5,则为 CommonJS;否则为 ES6/ES2015

指定生成什么模块代码。

--moduleDetection

legacyautoforce

“auto”:将包含导入、导出、import.meta、jsx(使用 jsx: react-jsx)或 esm 格式(使用 module: node16+)的文件视为模块。

指定用于检测文件是脚本还是模块的方法。

--moduleResolution

classicnode10/nodenode16nodenextbundler

如果 moduleAMDUMDSystemES6/ES2015,则为 Classic;如果 modulenode16nodenext,则匹配;否则为 Node

指定 TypeScript 如何从给定的模块说明符查找文件。

--moduleSuffixes

列表

解析模块时搜索的文件名后缀列表。

--newLine

crlflf

特定于平台。

设置用于发出文件的换行符。

--noEmit

布尔值

false

禁用从编译中发出文件。

--noEmitHelpers

布尔值

false

禁用在编译后的输出中生成自定义辅助函数,例如 __extends

--noEmitOnError

布尔值

false

如果报告任何类型检查错误,则禁用发出文件。

--noErrorTruncation

布尔值

false

禁用在错误消息中截断类型。

--noFallthroughCasesInSwitch

布尔值

false

启用对 switch 语句中贯穿情况的错误报告。

--noImplicitAny

布尔值

如果 strict,则为 true;否则为 false

启用对隐式 any 类型的表达式和声明的错误报告。

--noImplicitOverride

布尔值

false

确保派生类中的重写成员用 override 修饰符标记。

--noImplicitReturns

布尔值

false

启用对在函数中未显式返回的代码路径的错误报告。

--noImplicitThis

布尔值

如果 strict,则为 true;否则为 false

this 被赋予 any 类型时,启用错误报告。

--noImplicitUseStrict

布尔值

false

禁用在发出的 JavaScript 文件中添加“use strict”指令。

--noLib

布尔值

false

禁用包含任何库文件,包括默认的 lib.d.ts。

--noPropertyAccessFromIndexSignature

布尔值

false

强制对使用索引类型声明的键使用索引访问器。

--noResolve

布尔值

false

禁止 importrequire<reference> 从扩展 TypeScript 应添加到项目中的文件数量。

--noStrictGenericChecks

布尔值

false

禁用函数类型中泛型签名的严格检查。

--noUncheckedIndexedAccess

布尔值

false

在使用索引访问类型时,向类型添加 undefined

--noUnusedLocals

布尔值

false

当局部变量未被读取时,启用错误报告。

--noUnusedParameters

布尔值

false

当函数参数未被读取时,引发错误。

--out

字符串

已弃用的设置。请使用 outFile 代替。

--outDir

字符串

指定所有已发出文件的输出文件夹。

--outFile

字符串

指定一个文件,将所有输出捆绑到一个 JavaScript 文件中。如果 declaration 为 true,则还指定一个文件,将所有 .d.ts 输出捆绑到一起。

--paths

object

指定一组条目,将导入重新映射到其他查找位置。

--plugins

列表

指定要包含的语言服务插件列表。

--preserveConstEnums

布尔值

true 如果 isolatedModules;否则为 false

禁用在生成的代码中擦除 const enum 声明。

--preserveSymlinks

布尔值

false

禁用将符号链接解析为其实际路径。这与节点中的相同标志相关联。

--preserveValueImports

布尔值

false

在 JavaScript 输出中保留未使用的导入值,否则这些值将被删除。

--preserveWatchOutput

布尔值

false

禁用在监视模式下清除控制台。

--pretty

布尔值

true

在 TypeScript 的输出中启用颜色和格式化,使编译器错误更易于阅读。

--reactNamespace

字符串

React

指定为 createElement 调用的对象。这仅适用于针对 react JSX 发射。

--removeComments

布尔值

false

禁用发出注释。

--resolveJsonModule

布尔值

false

启用导入 .json 文件。

--resolvePackageJsonExports

布尔值

truemoduleResolutionnode16nodenextbundler 时;否则为 false

在解析包导入时使用 package.json 的 'exports' 字段。

--resolvePackageJsonImports

布尔值

truemoduleResolutionnode16nodenextbundler 时;否则为 false

在解析导入时使用 package.json 的 'imports' 字段。

--rootDir

字符串

从输入文件列表中计算得出。

指定源文件中的根文件夹。

--rootDirs

列表

从输入文件列表中计算得出。

允许将多个文件夹视为一个文件夹,以便在解析模块时进行处理。

--skipDefaultLibCheck

布尔值

false

跳过对 TypeScript 附带的 .d.ts 文件进行类型检查。

--skipLibCheck

布尔值

false

跳过对所有 .d.ts 文件进行类型检查。

--sourceMap

布尔值

false

为生成的 JavaScript 文件创建源映射文件。

--sourceRoot

字符串

指定调试器查找参考源代码的根路径。

--strict

布尔值

false

启用所有严格类型检查选项。

--strictBindCallApply

布尔值

如果 strict,则为 true;否则为 false

检查 bindcallapply 方法的参数是否与原始函数匹配。

--strictFunctionTypes

布尔值

如果 strict,则为 true;否则为 false

在分配函数时,检查以确保参数和返回值是子类型兼容的。

--strictNullChecks

布尔值

如果 strict,则为 true;否则为 false

在类型检查时,考虑 nullundefined

--strictPropertyInitialization

布尔值

如果 strict,则为 true;否则为 false

检查在构造函数中声明但未设置的类属性。

--stripInternal

布尔值

false

禁用发出其 JSDoc 注释中包含 @internal 的声明。

--suppressExcessPropertyErrors

布尔值

false

在创建对象字面量时,禁用报告多余属性错误。

--suppressImplicitAnyIndexErrors

布尔值

false

当索引缺少索引签名的对象时,抑制 noImplicitAny 错误。

--target

es3es5es6/es2015es2016es2017es2018es2019es2020es2021es2022esnext

ES3

设置生成的 JavaScript 的 JavaScript 语言版本,并包含兼容的库声明。

--traceResolution

布尔值

false

记录在 moduleResolution 过程中使用的路径。

--tsBuildInfoFile

字符串

.tsbuildinfo

用于存储 .tsbuildinfo 增量构建信息的 文件。

--typeRoots

列表

指定多个充当 ./node_modules/@types 的文件夹。

--types

列表

指定要包含的类型包名称,而无需在源文件中引用它们。

--useDefineForClassFields

布尔值

如果 targetES2022 或更高版本(包括 ESNext),则为 true;否则为 false

发出符合 ECMAScript 标准的类字段。

--useUnknownInCatchVariables

布尔值

如果 strict,则为 true;否则为 false

将默认的 catch 子句变量设为 unknown 而不是 any

--verbatimModuleSyntax

布尔值

false

不转换或省略任何未标记为类型专用的导入或导出,确保它们根据“module”设置以输出文件的格式写入。

TypeScript 文档是一个开源项目。帮助我们改进这些页面通过发送拉取请求

此页面的贡献者
MHMohamed Hegazy (96)
OTOrta Therox (54)
DRDaniel Rosenwasser (19)
ADAxel D (14)
AGAnton Gilgur (7)
60+

上次更新:2024 年 3 月 21 日