@types/xx"> @types/xx"> @types/xx">
TypeScript 词条目录
前端Wiki/TypeScript/实战/工程配置

第三方库类型

第三方库类型有三个来源:自带类型(.d.ts 直接打包在包里)、DefinitelyTyped 社区维护的 @types/xxx 补丁包、以及干脆没有类型的老库。

装了 @types 包 TS 会自动识别;没类型的库 import 进来默认 any,可以先 declare module 补一个基础形状应急,再逐步收紧。用 npm ls @types/* 或编辑器内悬浮查看类型来源。

  • @types/包名:DefinitelyTyped 社区类型包,安装即生效
  • checkJs + allowJs:给存量 JS 项目渐进迁移 TS 铺路
  • 完全没类型的库:declare module 补形状,先 any 顶住再收紧
TS
# 常见类型补丁包(与运行库成对安装)
npm install lodash --save
npm install @types/lodash --save-dev

# 检查类型来源:把鼠标悬停在导入名上,编辑器会显示定义文件路径
TS
// 给零类型老库的应急声明:src/shims.d.ts
declare module 'js-paginator' {
  interface PaginatorOptions { page: number; size: number }
  export default class Paginator {
    constructor(opts: PaginatorOptions);
    next(): number;
  }
}

// 渐进迁移的 tsconfig:允许 JS 文件参与检查
// {
//   "allowJs": true,        // 允许编译 JS 文件
//   "checkJs": true         // 对 JS 文件也做类型检查(配合 JSDoc)
// }

// 使用处
import Paginator from 'js-paginator';
const p = new Paginator({ page: 1, size: 10 });
const next = p.next();     // number
本节要点库类型三来源:自带 / @types 补丁包 / declare module 手工补;存量项目用 allowJs 渐进迁移。