网站搜索

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


(如果这有重复内容,抱歉,我找不到任何与现有 .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.ts。d.ts 是你将拥有的对象的类型定义文件。

在你的情况下,它缺失了,因此你会收到那个错误。所以必须使用对象名称创建一个类型定义文件。或者有时也可能是扩展名的问题。

any 指对象中的任何数据类型。你必须亲自接触 TypeScript 接口和类型。

简单例子

相关文章