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

使用 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'.
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