10 第三方库类型支持

第三方库类型支持(DefinitelyTyped) #

DefinitelyTyped 是 TypeScript 类型声明的社区仓库,提供大量第三方 JavaScript 库的类型定义。

基本概念 #

DefinitelyTyped(@types)包通过 npm 安装,为无类型库添加 TypeScript 支持。每个包对应一个库,提供 .d.ts 文件。

使用场景 #

  • 使用 JavaScript 库时,需要类型检查和自动补全。
  • 项目迁移到 TypeScript 时,为现有依赖添加类型。
  • 贡献自定义类型声明到社区。

示例代码 #

安装示例:

npm install --save @types/lodash

使用示例:

import * as _ from 'lodash';

const numbers = [1, 2, 3];
const sum = _.sum(numbers); // 类型安全,sum 为 number

最佳实践 #

  • 始终检查 DefinitelyTyped 是否有对应包,避免手动编写声明。
  • 如果库内置类型,使用 tsconfig.json 的 typeRoots 配置。
  • 贡献缺失的类型声明到 DefinitelyTyped 仓库。
  • 更新依赖时,同时更新 @types 包以匹配版本。