将项目从JavaScript迁移到TypeScript中

在实际项目中,常常有一些历史代码是用 JavaScript 编写的,为了降低后期维护成本,需要逐步将其迁移到 TypeScript 中。迁移过程通常分为以下两步。

首先,将 JavaScript 添加到编译输出文件中。在 tsconfig.json 文件中开启 allowJs 编译选项,然后 JavaScript 文件也将参与编译过程,并输出到编译目录下。设置方式如下。

{
  "compilerOptions": {
    "allowJs": true,
    /*需要指明输出目录,否则编译后的文件和源文件同名,无法输出文件*/
    "outDir": "dist",
    ...
  }
}

虽然 TypeScript 不会对 JavaScript 代码做类型检查,allowJs 编译选项将告知编译器将 JavaScript 文件中的所有声明都当作 any 类型而不做其他要求,但至少可以同时使用 TypeScriptJavaScript 代码进行开发,且 TypeScript 能直接使用 JavaScript 中的模块。

然后,一次改一个文件,逐个将各个 JavaScript 文件的扩展名更改为 .ts,并修复编译错误。例如,将其中一个 JavaScript 文件的扩展名更改为 .ts,编译器将检查出编译错误。此时,你就可以着手进行修复,直到整个文件修复完成,无编译错误产生,然后再更改下一个 JavaScript 文件。

在更改的过程中,你可以尝试在编译选项中打开严格模式(设置 "strict": true),或根据需要开启或关闭某些类型检查的编译选项,按提示进行修改,使 TypeScript 代码变得更加完善。