Skip to content
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待

JavaScript 支持

allowJs

允许在项目中导入 JavaScript 文件,而不仅仅是 .ts.tsx 文件。例如,此 JS 文件:

js
// @filename: card.js
export const 
defaultCardDeck
= "Heart";
Try

当导入到 TypeScript 文件中时,将引发错误:

ts
// @filename: index.ts
import { 
defaultCardDeck
} from "./card";
console
.
log
(
defaultCardDeck
);
Try

启用 allowJs 后导入正常:

ts
// @filename: index.ts
import { 
defaultCardDeck
} from "./card";
console
.
log
(
defaultCardDeck
);
Try

此标志可用作一种方式,通过允许 .ts.tsx 文件与现有 JavaScript 文件共存,逐步将 TypeScript 文件添加到 JS 项目中。

它也可以与 declarationemitDeclarationOnly 一起使用,为 JS 文件创建声明

checkJs

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
);
Try

maxNodeModuleJsDepth

  • 发布版本: 2.0

node_modules 下搜索并加载 JavaScript 文件的最大依赖深度。

此标志仅在启用 allowJs 时可以使用,并且用于希望 TypeScript 为 node_modules 中的所有 JavaScript 推断类型的情况。

理想情况下,这应该保持为 0(默认值),并应使用 d.ts 文件显式定义模块的形状。 但是,在某些情况下,你可能希望以牺牲速度和潜在准确性为代价来启用它。