使用 TypeScript 的 JS 项目

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

  • 一种仅基于 JavaScript 代码推断的类型系统
  • 通过 JSDoc 在 JavaScript 中实现增量类型检查
  • 在 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 的信息,请阅读TypeScript 如何对 JS 进行类型检查

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

此页面的贡献者
OTOrta Therox (6)
660x20  (1)

最后更新:2026 年 3 月 27 日