TypeScript 库发布时怎样组织类型声明和入口?
从 package.json exports、types、模块格式和构建产物说明 TypeScript 库发布的兼容边界。
参考答案
库发布至少要让消费者能找到运行时代码和类型声明。通常需要构建 ESM 或 CommonJS 入口、生成 .d.ts,并在 package.json 中正确声明 types 或通过 exports 的条件暴露类型入口。
exports 会封装未声明的子路径,也可能改变旧项目的解析结果。发布者应分别测试 Node、打包器、TypeScript 不同 moduleResolution 设置下的 import、require、类型导入和子路径,不能只在本仓库能编译就认为兼容。
类型声明描述的是公开 API 契约,不能保证运行时一定提供同样行为。发布前应检查产物中是否误包含源码路径、测试文件或仅开发环境存在的依赖,并用一个独立消费者项目验证安装包。