我正在运行一个包含数千个.js文件的大型项目,这些文件都是用es5编写的,由于TS的许多原因和好处,我们决定开始迁移到TS,经过几天和多项研究之后,我将详细阐述以下几点:
要开始从es5 ts 迁移到ts,我们可以通过两种方式开始:
First way:
1-安装ts,创建tsconfig并将allowJS设置为true,然后开始将文件扩展名更改为.ts,默认情况下一切都将正常工作。
2.由于我们希望逐步迁移,所以我们不希望立即将全局脚本替换为本机模块,换句话说,我们不希望立即键入import和export,而是希望保持旧的global scripts方式,使用/// <reference path="">加载依赖项。
3.在上一步之后,我们可以逐步开始将文件转换为本机模块esm。
第二条路:
1-正如我所读到的关于UMD的文章,它将同时工作在borwser(客户端)和服务器上,这意味着支持所有类型的模块AMD, CommonJS, SystemJS and Native ES modules
2-在以UMD的方式重写脚本之后,我们可以逐渐开始将脚本转移到ESM。
最后但并非最不重要的是,关于智能,我们将开始相应地编写.d.ts文件,或者我们可以依靠ts-loader生成这些文件
最后,我们要么使用ts-loader,要么使用babel,但是我们不确定每个限制是否都有一些限制。
对于什么是开始迁移的最佳方式,任何想法都是值得赞赏的。
发布于 2022-06-25 09:14:00
我很感激所有的答案,但就我的情况而言,它是如此复杂,因为ts模块会影响scope,我发现有用的是使用所谓的webpack中的shimmer modules,它允许一个名为imports-loader的特性,我可以使用它来操作js的范围,因此没有什么中断,然后我可以一个文件一个文件地移动开始迁移。
发布于 2022-06-23 18:45:29
也许这个工具可以帮你:https://github.com/airbnb/ts-migrate
ts-迁移是一种帮助将代码迁移到TypeScript的工具。它接受一个JavaScript或部分TypeScript项目,并给出一个编译TypeScript项目。ts-迁移旨在加速TypeScript迁移过程。生成的代码将通过构建,但需要跟踪以提高类型安全性。
发布于 2022-06-24 07:46:51
如果可能的话,启动possible并编写迁移脚本来完成代码复制/粘贴任务。其中,项目设置在编译/构建/运行/lint方面将是无错误的。因此,即使在将来也不会有任何问题,您只需要添加模块。您可以一个模块一个模块地迁移。
现在,如果您要迁移到TS,意味着不只是通过扩展或包类型,因为它不会有更多的好处,您将需要更改代码,如类型、接口、信任等。
因此,启动一个新的项目,然后将代码转换为TS,然后逐步移动应该更好。
https://stackoverflow.com/questions/72631449
复制相似问题