添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
别再导出 .d.ts 了!

别再导出 .d.ts 了!

完整的标题是:当你使用 TypeScript 编写 npm 包时,别再生成并导出 .d.ts 文件了

为什么要导出 .d.ts?

在 package.json 里添加 "types": "index.d.ts" 就可以让别人使用你的库的时候能得到类型提示。但是其实这里也可以直接填入源码文件,也就是 "types": "index.ts" ,这样不仅能得到类型,甚至在某些编辑器里可以点进源码里。

可我不想让别人看我的源码

除非你可以在类型上写清楚自己的库如何使用,一行函数十行注释(而且不能是 javadoc 那种废话),否则其实大部分情况下光有类型并不能理解用法。另外,直接给源码的情况下使用方也可以更方便地查到源码里的 bug,可以提高作者解决 bug 的效率。

我可以写注释,就是不想给别人源码

那么至少请自己编写 .d.ts(或者基于 tsc -d 的输出继续修改,而不是直接使用它),其原因是 tsc 至今未能支持合并 .d.ts 以及去除不需要的 types,10 个 .ts 文件就会生成 10 个 .d.ts 文件(除非编译时自己指定输出 types 的文件,但是这又增加了工作量)。

参考项目

我的源码为 ts 的项目: @hyrious/esbuild-dev

"main": "dist/index.js",
"types": "src/index.ts"

我的源码为 js,但是导出 .d.ts 的项目: @hyrious/gfm

"main": "dist/index.js",
"types": "src/index.d.ts"

发布于 2021-03-13 16:49