本章介绍什么是 TypeScript 类型声明文件,以及如何在 Rslib 中生成类型声明文件。
TypeScript 类型声明文件提供 JavaScript 代码的类型信息。类型声明文件通常具有 .d.ts
扩展名。它们允许 TypeScript 编译器理解 JavaScript 代码的类型结构,从而实现以下功能:
Bundle 类型将多个 TypeScript 声明文件打包到一个声明文件中。
优势:
劣势:
Bundleless 类型为库中的每个模块生成单独的声明文件,就像 tsc
一样。
优势:
劣势:
Rslib 默认使用 TypeScript Compiler API 生成 bundleless 类型,用 API Extractor 生成 bundle 类型。
如果你想生成 bundleless 类型,可以:
dts: true
或者 dts: { bundle: false }
在 Rslib 配置文件。如果你想生成 bundle 类型,可以:
@microsoft/api-extractor
作为 devDependencies
, 这是用于打包类型声明文件的底层工具。dts: { bundle: true }
。需要注意的是,Rslib 在生成类型声明文件的过程中,默认会强制设置 tsconfig.json
中的一些配置项以保证 TypeScript Compiler API 能够仅生成类型声明文件。
最终类型声明文件输出目录的优先级从高到低为:
tsconfig.json
中的 declarationDir
配置项你可以参考 lib.dts 获取更多有关类型声明文件配置的详细信息。