第三方库类型支持(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 包以匹配版本。