繁体   English   中英

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

[英]"Could not find a declaration file for module" when importing existing .jsx files

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

我一直在将我的应用程序迁移到打字稿,现在遇到了以下错误:

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

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

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

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

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

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

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

any指的是对象内的任何数据类型。 您必须亲自接触打字稿接口和类型。

简单的例子: https://www.typescriptlang.org/play?#code/PTAEAEDMEsBsFMB2BDAtvAXKZjqubAHQAuAzgLABQ8AHgA4D2ATsaMQJ53ygDCyrAXlABvUACMm8eABMspYk2iIA5gG5Q7eMiYB5SACFoLABZZEAV1Rj4TUAF9VVWoxZtO3ACINloIaIlS0qRyCkrKANoAuuqa2nqGJmaW1rYOTvTMrADGDIjyoFmS-PB8xAByaNxCABQAlL4AfKAARJCw5pCQ7M2OlFQgEDAIKOhYAG4E0NIkFJR4LqwcXCK8-AA0oF4+dqCQTAyoLYTAOHgEhABWpD3pC27LAIK4+LCkvqusAD6b3r39YFA4EhKlhkHQ6DN-hAbPsmMFQABGADMADYEVR5pl7txRIUtMQSvwKuh7Lt9odmsdTi9Ltdejk8qwRlUCkUCaVifA6qogA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM