背景
项目由 JS 向 TS 转型时,若使用 import 的方式引入 JS 文件,则在脚本检查 TS 时,会报错找不到这些 JS 文件,造成 TS 检查日志里有很多同样的信息,因此很难找到真正的 TS 报错信息。
三种解决方案
1. 给 JS 文件增加类型
工作量太大,毕竟之前都是用 JS 写的,收益率太低。
2. 在 TS 中使用 require 方式导入 JS
在脚本检查 TS 时不会出现找不到 JS 的冗余日志,但该文件无法链接到原文件(跳转会失效)。
3. tsconfig 中的 files 字段配置全局的类型文件
在该文件中写入:
declare module '*'
这样即使使用 import 的方式导入 JS 文件,也不会出现上述冗余日志。但点击该文件时会直接跳转到配置的全局类型文件中,感觉很不爽。
补充:实际项目里更推荐的做法是给
jsconfig.json/tsconfig.json配置allowJs: true并打开checkJs: false,让 JS 文件参与工程但不强制类型检查;如果是第三方 JS 库,应安装对应的@types/xxx包,或自行编写.d.ts文件,而不是用declare module '*'把所有 JS 都退化为any。
来源整理自:vue3js.cn 面试官系列



