使用 TypeScript 的 JS 项目

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

  • 仅基于 JavaScript 代码推断的类型系统
  • JavaScript 中的增量类型 通过 JSDoc
  • 在 JavaScript 文件中使用 // @ts-check
  • TypeScript 代码
  • 带有 strict 启用的 TypeScript

每一步都代表着向更安全的类型系统迈进,但并非每个项目都需要这种级别的验证。

TypeScript 与 JavaScript

当您使用使用 TypeScript 提供工具的编辑器时,例如自动完成、跳转到符号和重构工具(例如重命名)。主页 上列出了具有 TypeScript 插件的编辑器。

通过 JSDoc 提供类型提示

.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 文档是一个开源项目。帮助我们改进这些页面 通过发送拉取请求

贡献者
OTOrta Therox (6)

上次更新:2024 年 3 月 21 日