Skip to content

编译器

TypeScript 编译器是一个命令行工具,它可以将 TypeScript 源代码编译成 JavaScript 代码。

tsc 命令行工具

TypeScript 编译器的命令行工具是 tsc,它可以编译单个文件,也可以编译整个项目。

bash
tsc [options] [file...]

编译器选项

TypeScript 编译器有很多选项,可以通过命令行参数或者配置文件来设置。

  • -h, --help:显示帮助信息。
  • -v, --version:显示版本信息。
  • -p, --project:指定一个包含编译配置的项目文件。
  • -t, --target:指定 ECMAScript 目标版本。
  • -m, --module:指定模块代码生成方式。
  • -d, --declaration:生成相应的.d.ts 文件。
  • -s, --sourceMap:生成相应的.map 文件。
  • -w, --watch:监视输入文件变化,重新编译。
  • --preserveWatchOutput:保留 watch 过程中产生的输出。
  • --pretty:使用颜色和上下文化输出错误。
  • --allowJS:允许编译 JavaScript 文件。
  • --jsx:指定 JSX 代码的生成方式。
  • --outDir:指定输出目录。
  • --rootDir:指定根目录。
  • --esModuleInterop:允许使用esModuleInterop选项。
  • --resolveJsonModule:允许导入 JSON 文件。
  • --noEmit:不生成输出文件。
  • --noEmitOnError:不生成输出文件,除非有错误。
  • --declarationDir:指定生成声明文件的文件夹。
  • --incremental:使用增量编译。
  • --tsBuildInfoFile:指定.tsbuildinfo 文件的路径。
  • --listFiles:列出编译后的文件。
  • --diagnostics:显示诊断信息。
  • --extendedDiagnostics:显示详细诊断信息。
  • --preserveSymlinks:保留符号链接。
  • --skipLibCheck:跳过库的类型检查。
  • --forceConsistentCasingInFileNames:强制对文件名使用一致的大小写。
  • --disableSourceOfProjectReferenceRedirect:禁用项目引用重定向的源。
  • --disableSolutionSearching:禁用解决方案搜索。
  • --newLine:指定换行符。
  • --charset:指定编译后的文件编码。
  • --emitBOM:在输出文件开头添加 UTF-8 字节顺序标记。
  • --preserveComments:保留注释。
  • --emitDecoratorMetadata:在编译后的 JavaScript 文件中保留装饰器元数据。
  • --experimentalDecorators:启用实验性的装饰器。
  • --emitDeclarationOnly:仅生成声明文件。
  • --stripInternal:删除所有带有 @internal 标签的声明。
  • --diagnostics:显示诊断信息。
  • --extendedDiagnostics:显示详细诊断信息。
  • --preserveSymlinks:保留符号链接。
  • --skipLibCheck:跳过库的类型检查。
  • --forceConsistentCasingInFileNames:强制对文件名使用一致的大小写。
  • --disableSourceOfProjectReferenceRedirect:禁用项目引用重定向的源。
  • --disableSolutionSearching:禁用解决方案搜索。
  • --newLine:指定换行符。
  • --charset:指定编译后的文件编码。
  • --emitBOM:在输出文件开头添加 UTF-8 字节顺序标记。
  • --preserveComments:保留注释。
  • --emitDecoratorMetadata:在编译后的 JavaScript 文件中保留装饰器元数据。
  • --experimentalDecorators:启用实验性的装饰器。
  • --emitDeclarationOnly:仅生成声明文件。
  • --stripInternal:删除所有带有 @internal 标签的声明。

编译上下文

编译器的上下文包括:

  • 编译器选项
  • 编译环境
  • 输入文件
  • 输出文件
  • 依赖关系
  • 类型声明文件
  • 编译缓存