JavaScript 支持
allowJs
默认值:
false,除非设置了checkJs发布版本: 1.8
允许在项目中导入 JavaScript 文件,而不仅仅是 .ts 和 .tsx 文件。例如,此 JS 文件:
当导入到 TypeScript 文件中时,将引发错误:
启用 allowJs 后导入正常:
此标志可用作一种方式,通过允许 .ts 和 .tsx 文件与现有 JavaScript 文件共存,逐步将 TypeScript 文件添加到 JS 项目中。
它也可以与 declaration 和 emitDeclarationOnly 一起使用,为 JS 文件创建声明。
checkJs
发布版本: 2.3
与 allowJs 协同工作。当启用 checkJs 时,JavaScript 文件中会报告错误。这等同于在项目中包含的所有 JavaScript 文件顶部添加 // @ts-check。
例如,根据 TypeScript 附带的 parseFloat 类型定义,这是一个不正确的 JavaScript:
js
// parseFloat 只接受字符串
module.exports.pi = parseFloat(3.142);当导入到 TypeScript 模块时:
ts
// @filename: constants.js
module.exports.pi = parseFloat(3.142);
// @filename: index.ts
import { pi } from "./constants";
console.log(pi);Try你不会收到任何错误。但是,如果启用 checkJs,你将收到来自 JavaScript 文件的错误消息。
ts
// @filename: constants.js
module.exports.pi = parseFloat(3.142);Argument of type 'number' is not assignable to parameter of type 'string'.
// @filename: index.ts
import { pi } from "./constants";
console.log(pi);TrymaxNodeModuleJsDepth
- 发布版本: 2.0
在 node_modules 下搜索并加载 JavaScript 文件的最大依赖深度。
此标志仅在启用 allowJs 时可以使用,并且用于希望 TypeScript 为 node_modules 中的所有 JavaScript 推断类型的情况。
理想情况下,这应该保持为 0(默认值),并应使用 d.ts 文件显式定义模块的形状。 但是,在某些情况下,你可能希望以牺牲速度和潜在准确性为代价来启用它。