ESM 和 CJS 共用同一份类型 - 让 type 先 move to ESM-only
摘要
项目开发中,ESM和CJS共用同一份类型文件会导致FalseEsm和FalseCjs问题。FalseEsm在TypeScript中误报模块类型,FalseCjs则影响CommonJS模块的导入。通过为ESM和CJS分别生成对应的.d.ts和.d.cts文件,可以有效解决这些问题。随着Node 20和TypeScript 5.8的更新,require ESM的支持使得FalseEsm问题有了更多解决方案。最佳实践是采用pure ESM或ESM + CJS模式,让类型文件优先支持ESM,简化开发流程。
欢迎在评论区写下你对这篇文章的看法。