在 tsx 中导入 jsx

问题描述

我继承了 JSX 的一些遗留项目。我正在将 JSX 转换为 TSX。

目前正在 TSX 中导入 JSX 和 JS 文件。我收到错误 Cannot find module 'config/abc_module' or its corresponding type declarations.

我知道缺少类型,因为它是一个 JS 文件。我添加了 JSDoc 类型,但似乎没有任何帮助。在 JSX 文件添加类型以在 TSX 中使用它们的最佳方法是什么。

我在JS中有很多文件,有些由于特定原因我什至无法转换。我搜索了很多并阅读了很多文章,但似乎找不到任何具体的前进方向。任何帮助,将不胜感激。提前致谢。

解决方法

  1. 在所有代码文件所在的根目录中创建一个 global.d.ts 文件
  2. 在文件写入行中:

declare module 'path/to/your/js/or/jsx'

现在这些 js/jsx 文件将解析为模块以导入您的打字稿代码!享受!

编辑:还要确保您的 tsconfig.json 配置为允许您混合使用 ts/js

,

您可能只需将扩展名从 .js.jsx -> .tsx 更改。 TypeScript 应该是 JavaScript 的超集。

另见此previous question