使用 TypeScript 的 JS 项目

在处理代码库时,TypeScript 的类型系统具有不同的严格程度:

  • 仅依据 JavaScript 代码推断的类型系统
  • 在 JavaScript 中通过 JSDoc 逐步添加类型
  • 在 JavaScript 文件中使用 // @ts-check
  • TypeScript 代码
  • 启用了 strict 的 TypeScript

每一步都朝着更安全的类型系统迈进,但并非每个项目都需要那种程度的验证。

TypeScript 与 JavaScript 结合

这是指你使用的编辑器借助 TypeScript 来提供自动补全、跳转到符号以及重命名等重构工具。主页列出了带有 TypeScript 插件的编辑器。

通过 JSDoc 为 JS 提供类型提示

在 .js 文件中,类型通常可以被推断出来。当类型无法推断时,可以使用 JSDoc 语法来指定。

声明之前的 JSDoc 注解将用于设置该声明的类型。例如:

js
/** @type {number} */
var x;
 
x = 0; // OK
x = false; // OK?!
Try

你可以在JSDoc 支持的类型中找到受支持的 JSDoc 模式的完整列表。

@ts-check

上一个代码示例的最后一行在 TypeScript 中会引发错误,但在 JS 项目中默认不会。要让你 JavaScript 文件中的错误得以提示,请在你的 .js 文件第一行添加 // @ts-check,让 TypeScript 将其作为错误提出。

js
// @ts-check
/** @type {number} */
var x;
 
x = 0; // OK
x = false; // Not OK
Type 'boolean' is not assignable to type 'number'.2322Type 'boolean' is not assignable to type 'number'.
Try

如果你有很多想要检查错误的 JavaScript 文件,可以改用 jsconfig.json。你也可以通过在文件中添加 // @ts-nocheck 注释来跳过对某些文件的检查。

TypeScript 可能会报出你不认同的错误,这种情况下,你可以在对应行的前一行添加 // @ts-ignore 或 // @ts-expect-error 来忽略特定行上的错误。

js
// @ts-check
/** @type {number} */
var x;
 
x = 0; // OK
// @ts-expect-error
x = false; // Not OK
Try

要详细了解 TypeScript 如何解读 JavaScript,请阅读TS 如何对 JS 进行类型检查

TypeScript 文档是一个开源项目。欢迎发送 Pull Request 帮助我们改进这些页面 ❤

最后更新:2026 年 10 月 23 日