找不到模块“反应”的声明文件

找不到模块“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文件,这由文件中的includeexclude设置
决定
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