找不到模块“react”的声明文件
Could not find declaration file for module ‘react’
当 TypeScript 找不到与 react 相关的模块的类型声明时,会出现错误“找不到模块‘react’的声明文件”。要解决错误,请通过运行错误消息中的命令来安装模块的类型,例如npm install -D @types/react
。
错误消息显示出现错误时应尝试运行的命令。上面截图中的命令是:
壳
npm i --save-dev @types/react
通常,类型包的名称是一致的 – @types/module-name
,但您可以尝试使用官方的
TypeScript 类型搜索来查找定义包。
导致错误的其他常见的反应相关包是:
壳
npm i --save-dev @types/react-dom # 👇️ if using react-router npm i --save-dev @types/react-router # 👇️ if using react-router-dom npm i --save-dev @types/react-router-dom
如果错误仍然存在,您正在导入的第三方模块可能不提供类型,这意味着您需要在具有.d.ts
扩展名的文件中声明该模块。
TypeScript.d.ts
在查找常规文件的相同位置查找
.ts
文件,这由文件中的include
和exclude
设置
决定tsconfig.json
。
module-name.d.ts
在您的常规 TypeScript 文件旁边创建一个名为的新文件,并向其中添加以下行。
模块名称.d.ts
declare module 'module-name';
确保替换module-name
为导致错误的模块的名称。
这将
any
在导入时将包的类型设置为。对于大多数用例,这应该足够了。如果要为包添加自己的类型定义,请将此行替换为以下代码:
模块名称.d.ts
declare module 'module-name' { export function myFunction(): string; }
myFunction
该示例显示如何为返回字符串的名为的函数添加类型。
您只需为要在代码中导入的函数添加类型定义。
如果这仍然不起作用,您应该尝试通过在import
.
索引.ts
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore import { myFunction } from 'module-name';
在语句上方添加这些import
行将抑制错误消息。
结论
当 TypeScript 找不到与 react 相关的模块的类型声明时,会出现错误“找不到模块‘react’的声明文件”。要解决错误,请通过运行错误消息中的命令来安装模块的类型,例如npm install -D @types/react
。