编译选项
TypeScript 编译器提供了丰富的命令行编译选项(也称为编译器标志或编译器选项),用于控制编译过程的行为、输出格式、错误报告等。以下是一些常用的 TypeScript 编译选项及其说明:
基础选项
- :指定输出文件的路径。当使用此选项时,所有输入文件会被合并到单一的输出文件中。
- :指定 ECMAScript 目标版本。例如,es5, es6, es2015, es2016, es2017, es2018, es2019, es2020, es2021, esnext。
- :指定模块系统。常见的值有 commonjs, amd, system, umd, es2015, esnext。
- :生成源码映射文件,便于调试原始 TypeScript 源代码。
- :监视文件变化并自动重新编译。
严格性选项
- :启用所有严格的类型检查选项,包括 noImplicitAny, strictNullChecks, strictFunctionTypes, strictPropertyInitialization 和 strictBindCallApply。
- :禁止隐式的 any 类型推断,要求明确标注所有类型。
- :使 null 和 undefined 类型更加严格,不允许将它们赋值给非 null 或非 undefined 类型的变量。
- :启用对 ES 模块和 CommonJS 模块间的互操作性支持,例如,允许在导入时省略 .default。
输出和优化选项
- :生成对应的 .d.ts 声明文件。
- :指定 .d.ts 声明文件的输出目录。
- :从输出的 JavaScript 文件中移除所有注释。
- :指定如何处理 JSX 代码,如 react(默认),preserve 或 react-native。
其他常用选项
- :当使用多入口点或输出目录不匹配源目录结构时,用于指定源目录的根目录列表。
- :为非相对模块名提供基准目录。
- :指定模块路径别名,用于路径解析。
- :允许编译器编译 .js 文件,这对于逐步迁移现有 JavaScript 项目很有用。
- :启用每个文件作为单独模块的编译,即使没有明确的 import 或 export,这有助于发现潜在的类型错误。
- :抑制因索引签名引起的隐式 any 错误。
这些选项可以通过命令行直接传递给 tsc 编译器,也可以在 配置文件中进行设置,以更方便地管理整个项目的编译选项。tsconfig.json 是 TypeScript 项目的主要配置文件,包含了编译器的各种设置。