如何在运行npx tsc时自动为TypeScript库导出index.d.ts类型声明文件
实现TS库自动生成类型声明文件的方案
第一步:调整tsconfig.json配置
你只需要在compilerOptions中新增3个配置项即可开启tsc自动生成.d.ts声明文件的能力:
declaration: true:核心开关,开启后编译时会自动为每个TS文件生成对应的.d.ts类型声明declarationMap?: true:可选配置,开启后会生成类型声明的sourcemap,方便库使用者跳转到你的源码查看类型定义declarationDir?: "build":可选配置,指定类型声明的输出目录,不填的话默认和outDir配置的输出路径一致,和编译后的JS文件放在一起
修改后的完整tsconfig.json如下:
{ "compilerOptions": { "lib": ["ES2019"], "module": "es6", "target": "es5", "moduleResolution": "node", "noUnusedLocals": true, "noUnusedParameters": true, "sourceMap": true, "outDir": "build", "strict": true, "noImplicitAny": true, // 新增以下配置 "declaration": true, "declarationMap": true }, "include": ["./**/*.ts"], "exclude": ["node_modules", ".vscode", "test"] }
第二步:配置package.json让使用者能识别类型
为了让其他开发者安装你的库后能自动读取到类型声明,需要在package.json中新增types字段,指向你生成的入口声明文件路径:
{ "name": "你的库名", "version": "1.0.0", "main": "./build/index.js", // 新增类型指向配置 "types": "./build/index.d.ts" }
验证效果
直接运行npx tsc,编译完成后就能在build目录下看到和你的TS源文件一一对应的.d.ts文件,入口文件index.ts对应的index.d.ts会自动包含所有你对外export的类型、方法、变量的声明。
注意事项
你需要确保项目有统一的入口文件(通常是根目录的index.ts),所有要对外暴露的能力、类型都要从这个入口文件export,这样生成的index.d.ts才会包含完整的对外类型。如果你需要把所有类型打包成单独的一个d.ts文件,还可以配合rollup+rollup-plugin-dts工具实现,属于进阶可选操作。
内容的提问来源于stack exchange,提问作者pir
相关产品推荐
相关产品推荐

