导入现有 .jsx 文件时“找不到模块的声明文件”

Posted

技术标签:

【中文标题】导入现有 .jsx 文件时“找不到模块的声明文件”【英文标题】:"Could not find a declaration file for module" when importing existing .jsx files 【发布时间】:2021-12-03 10:33:45 【问题描述】:

(抱歉,如果这是重复的,我找不到任何处理现有 .jsx 文件的问答)

我一直在将我的应用程序迁移到 typescript,现在出现了以下错误:

Could not find a declaration file for module '../components/...'. '.../components/....js' implicitly has an 'any' type.ts(7016)

我宁愿现在不必检查整个应用程序并将所有内容转换为.tsx。我觉得在我的tsconfig 文件中将noImplicitAny 转换为false 会过分,因为我现在只想忽略导入问题。

有没有更明智的方法来解决这些错误?

【问题讨论】:

【参考方案1】:

你应该为一些不存在的包创建类型。

declare module 'objectname' 
  const content: any;
  export default content;

所有的 javascript 模块可能不包含它的类型。因此,我们需要为我们定义的对象创建类型定义。为第三方定义的最简单方法如上所述。因为 webpack 会检查各自的 index.d.tsd.ts 是您将拥有的对象的类型定义文件。

在您的情况下,它丢失了,因此您收到该错误。因此,必须使用对象名称创建类型定义文件。或者有时是扩展。

any 引用对象中的任何数据类型。您必须亲自动手使用 typescript 接口和类型。

Simple example

【讨论】:

谢谢!我不确定这意味着什么。你能指点我讲授理论的文档吗?

以上是关于导入现有 .jsx 文件时“找不到模块的声明文件”的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript:仅在单元测试中找不到模块的声明文件

在 Angular nx 项目中导入 JavaScript 模块

在 React 中导出/导入文件 .jsx

我无法使用 webpack 导入 React 组件

After Effects / ExtendScript:使用库和导入 .jsx 文件?

如何将 React.jsx 文件导入我的 HTML?