导入现有 .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.ts
。 d.ts
是您将拥有的对象的类型定义文件。
在您的情况下,它丢失了,因此您收到该错误。因此,必须使用对象名称创建类型定义文件。或者有时是扩展。
any
引用对象中的任何数据类型。您必须亲自动手使用 typescript 接口和类型。
Simple example
【讨论】:
谢谢!我不确定这意味着什么。你能指点我讲授理论的文档吗?以上是关于导入现有 .jsx 文件时“找不到模块的声明文件”的主要内容,如果未能解决你的问题,请参考以下文章
在 Angular nx 项目中导入 JavaScript 模块