编译器配置项-compilerOptions
JavaScript支持配置项01
使用JavaScirpt-allowJs
允许在项目中导入 JavaScript 文件,而不仅仅是 .ts
和 .tsx
文件。例如这个.js
文件:
// @filename: card.js
export const defaultCardDeck = "Heart";
当一个TypeScript文件导入它时将报错:
// @filename: index.ts
import { defaultCardDeck } from "./card";
console.log(defaultCardDeck);
如果allowJs
被启用:
// @filename: index.ts
import { defaultCardDeck } from "./card";
console.log(defaultCardDeck);
这个选型可以用来在JavaScript的项目中增量添加TypeScript文件,从而使.ts
/.tsx
文件
与现有 JavaScript 文件一起存在。
该选项还可以和 declaration
/ emitDeclarationOnly
一起工作 为JS文件生成声明文件。
检查JS文件 - checkJs
和 allowJs
协同工作。启用该选项后,等效于工程中的JavaScript文件顶部添加//@ts-check
注释。
例如,根据TypeScript对parseFloat
的类型声明,下边的JavaScript代码是不正确的:
// parseFloat only takes a string
module.exports.pi = parseFloat(3.142);
当被TypeScript文件导入时:
// @filename: constants.js
module.exports.pi = parseFloat(3.142);
// @filename: index.ts
import { pi } from "./constants";
console.log(pi);
未启用checkJs
之前不会收到任何错误,但是,启用 checkJs
之后,JavaScript 文件将收到错误消息Argument of type 'number' is not assignable to parameter of type 'string'.
:
// @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);
Js模块依赖最大深度 - maxNodeModuleJsDepth
在 node_modules
目录中索并加载 JavaScript 文件的最大依赖深度。
该标志只能在启用了 allowJs
时使用,并且如果您想让TypeScript为node_modules
内的所有提供JavaScript推断类型,则可以启用该选项。
理想情况下,该值应保持默认值0
,并且应使用 .d.ts
文件来显式定义引用模块的类型。但是,在某些情况下,您可能希望以牺牲速度和潜在准确性为代价来启用此功能。