[译]<<Effective TypeScript>> 技巧60:使用allowjs混合使用ts和js

534 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情

本文的翻译于<<Effective TypeScript>>, 特别感谢!! ps: 本文会用简洁, 易懂的语言描述原书的所有要点. 如果能看懂这文章,将节省许多阅读时间. 如果看不懂,务必给我留言, 我回去修改.

技巧60:使用allowjs混合使用ts和js

小型项目js转ts很容易,大型项目需要逐步从js转ts。这意味着,你需要一种方法让js和ts同时存在。

关键在于allowJs的编译选项。

  1. 允许js和ts相互import。除了@ts-check,js文件不会报语法错误。
  2. 允许将ts纳入你的构建链,这能让你在将js代码迁移到ts时,运行测试用例。

如果你的打包器包含ts的集成模块或者拥有可用的插件,这通常是最简单的方法。例如:browserify,你可以运行:npm install --save-dev tsify将其作为插件添加。

$ browserify index.ts -p [ tsify --noImplicitAny ] > bundle.js

大多数单元测试工具也有类似的配置。例如jest,你可以安装ts-jest,然后在jest.config.js文件中指定ts资源:

module.exports = {
  transform: {
    '^.+\\.tsx?$': 'ts-jest',
  },
};