反应,打字稿 - 找不到模块......或其相应的类型声明

Ami*_*aei 21 typescript reactjs visual-studio-code create-react-app yarnpkg

我在 vs 代码中使用 create-react-app 和 yarn 2 创建了一个新项目。编辑器在导入每个已安装的库时抛出错误,如下所示:

找不到模块“react”或其相应的类型声明。

项目编译并成功运行,但错误仍然存​​在。当我将文件的扩展名更改为.js.jsx 时ts.tsx,错误消失。我应该如何解决打字稿文件的这个问题?

Eri*_*ian 98

也许只需重新启动 TS 服务器就可以了。

\n

使用 VsCode:

\n

视窗:

\n

类型:ctrl + Shift + Pctrl + Shift + F5

\n

选择:> TypeScript: Restart TS server

\n

苹果电脑:

\n

类型:\xe2\x87\xa7 + \xe2\x8c\x98 + PF1

\n

选择:> TypeScript: Restart TS server

\n

也许这只是一个文件错误,检查您是否不小心将文件从更改.ts.tsx.tsx.ts

\n


Mah*_*ary 23

您需要为您安装的库安装类型。通常你应该这样做:

npm install @types/libName // e.g. npm install @types/react-leaflet
Run Code Online (Sandbox Code Playgroud)

有时,DefinitelyTyped 存储库中没有可用的类型,而您会遇到npm ERR! 404 Not Found: @types/my-untyped-module@latest. 在这种情况下,您可以做几件事:

1-decs.d.ts在项目的根目录中创建一个文件并写入其中:

    declare module "libName" // e.g declare module 'react-leaflet'
Run Code Online (Sandbox Code Playgroud)

2-或者简单地使用@ts-ignore以下方法抑制错误:

// @ts-ignore  
import Map from 'react-leaflet'
Run Code Online (Sandbox Code Playgroud)

3-或者您可以帮自己和其他人一个忙,并在绝对类型存储库中添加库类型。

如果它仍然不起作用,我首先建议您使用最新版本的 Typescript。如果这样做,请关闭编辑器,删除node_modules文件夹并再次安装依赖项(npm installyarn install)并再次检查。

  • 哇。现在是 2021 年,我们正在制作 *.d.ts 文件。React 给你一个火花塞并告诉你你可以建造一辆汽车。是的。好的。这是一个超级框架。 (2认同)

css*_*hus 19

我有同样的错误消息,也与导入有关。

就我而言,问题是由于导入 png 文件以便在 SVG 中使用它引起的:

import logo from 'url:../../public/img/logo.png';
Run Code Online (Sandbox Code Playgroud)

我收到的消息是:

Cannot find module 'url:../..public/img/logo.png' or its corresponding type declarations.
Run Code Online (Sandbox Code Playgroud)

解决方案:

在项目根是一个文件css.d.ts。必须为导入的各种图形扩展(类型)声明一个模块。(注意:不是针对项目中使用或引用的图形类型,而是针对 导入的 图形类型

这是css.d.ts该项目的完整文件:

declare module '*.scss' {
  const css: { [key: string]: string };
  export default css;
}
declare module '*.sass' {
  const css: { [key: string]: string };
  export default css;
}
declare module 'react-markup';
declare module '*.webp';
declare module '*.png';
declare module '*.jpg';
declare module '*.jpeg';
Run Code Online (Sandbox Code Playgroud)


Jon*_*ang 12

我的情况:

myFolder位于src目录下

我在这一行看到同样的错误:

import { GlobalStyle } from "myFolder";
Run Code Online (Sandbox Code Playgroud)

其他答案不起作用。

我简单地添加baseUrltsconfig.json里面compilerOptions

{
  "compilerOptions": {
    "baseUrl": "src/",
//other config...
  },
  "include": [
    "src"
  ]
}
Run Code Online (Sandbox Code Playgroud)

问题解决了!

参考: https: //www.typescriptlang.org/tsconfig#baseUrl


Abd*_*lah 5

我删除了一个模块并将其添加回我的源代码中。尽管存在相同的源代码,但由于缓存,我收到此错误。

\n

以下解决方案对我有用:

\n

视窗:

\n
\n

ctrl + Shift + F5

\n
\n

苹果电脑:

\n
\n

\xe2\x87\xa7 + \xe2\x8c\x98 + P F1

\n
\n

在此输入图像描述

\n