TypeScript declaration

  • TypeScript 的内置类型的声明在 node_modules/typescript/lib/lib.[something].d.ts,并且不需要提供 .js 实现,实现是内置的。

  • 第三方包需要提供 .js 实现, .js 实现可以是由 .ts transpile 生成的,也可以是直接写的。(BlockSuite 本身是 TypeScript 项目,所以 .js 实现是 transpile 生成的,并且通过 exports 把源文件指到了 ./dist 文件夹。@blocksuite/blocks 包是通过 tsc 打包,因此输出位置是通过 tsconfig.json 指定的)

  • 根据代码最后的执行环境实际包括哪些 api,需要判断包括哪些内置lib.[something].d.ts。可以通过 target 或者 lib(更精细)控制。