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 项目中。

它也可以与 declaration 和 emitDeclarationOnly 一起使用,为 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";
Cannot find module './constants' or its corresponding type declarations.
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";
Cannot find module './constants' or its corresponding type declarations.
console
.
log
(
pi
);
Try

maxNodeModuleJsDepth ​

  • 发布版本: 2.0

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

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

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