原文中文,约2500字,阅读约需6分钟。
📝
内容提要
Mind Elixir在2021年10月开始逐渐迁移到TypeScript,将.js文件改为.ts文件并添加类型。作者尝试了不同的方法来处理全局自定义类型的问题,最终选择使用import type并将allowJs设为false来完成迁移。TypeScript对构造函数的支持不友好,但作者仍坚持使用普通构造函数解决问题。
🎯
关键要点
-
Mind Elixir 在 2021 年 10 月开始迁移到 TypeScript。
-
迁移过程中,作者设置了 compilerOptions.strict 为 true。
-
迁移到 TypeScript 的过程相对简单,只需添加 loader 和 tsconfig.json。
-
全局自定义类型的处理是迁移中的一个问题,作者选择了使用 ESM 和 import type。
-
作者尝试使用 d.ts 文件来管理全局类型,但发现这并不理想。
-
通过设置 typeRoots,TypeScript 可以在指定目录查找类型定义文件。
-
作者考虑到用户使用时需要类型提示,决定在输出选项中添加 declaration 和 emitDeclarationOnly。
-
生成的 d.ts 文件可能缺少未导出的类型,导致 IDE 将其视为 any。
-
最终,作者决定回归使用 import type,并将 allowJs 设为 false 完成迁移。
-
TypeScript 对构造函数的支持不友好,作者坚持使用普通构造函数。
🏷️