I am running on a huge project with thousands of .js
files that are written in es5
, and for many reasons and benefits of TS
, we've decided to start migrating to TS
, after a couple of days and many pieces of research, I am going to elaborate a couple of points:
To start migrating from es5
to ts
we can start either by two ways:
First way:
1- Installing ts
, creating tsconfig
with allowJS
set to true then start changing the extension of files to .ts
and everything will work by default
2- As we want to migrate gradually we don't want at once to replace the global scripts to native modules, in other words, we don't want immediately to type import
and export
, but instead we want to keep the old way global scripts
and use /// <reference path="">
to load dependencies
3- after previous step we can gradually start turning the files into native modules esm
Second way:
1- As I've read about UMD it will work on both borwser(client) and server, which means support all type of modules AMD, CommonJS, SystemJS and Native ES modules
2- after re-writing the scripts in UMD
fashion, we can gradually start moving our scripts to ESM
last but not least, and regarding the intelligence we'll start writing .d.ts
files accordingly or we can rely on ts-loader
to generate the files
lastly, we either go with ts-loader
or babel
but we are not sure if there are couple of limitations for each of which
Any idea is really appreciated on what is the best way to start migrating
ts
files and lettsc
do the magic converting it to ES5. The context of my experience is the same, thousands of working JS files but willing to create new things in TS. Both migrations, or coexistence to be precise, worked wonders because working JS remains working but new code and maintenance code is made in TS, easing heavily the development process; also developers are happier, win/win. – Sinclair