【问题标题】:"Could not find a declaration file for module" when importing existing .jsx files导入现有 .jsx 文件时“找不到模块的声明文件”
【发布时间】: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 会过分,因为我现在只想忽略导入问题。

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

【问题讨论】:

    标签: javascript reactjs typescript module tsconfig


    【解决方案1】:

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

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

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

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

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

    Simple example

    【讨论】:

    • 谢谢!我不确定这意味着什么。你能指点我讲授理论的文档吗?
    猜你喜欢
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 2021-01-02
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多