`yarn add react-router-dom` 和 `yarn add @types/react-router-dom` 有什么区别?
What's the difference between `yarn add react-router-dom` and `yarn add @types/react-router-dom`?
正在做
yarn add react-router-dom
失败。该应用程序在启动时抛出错误,Intellij 将来自 react-router-dom
的导入标记为错误。但是做
yarn add @types/react-router-dom
有效。
我找到的所有示例,除了一个显示第一个 yarn add...
命令的示例。这是 react-router-dom
的新内容吗?
如果有什么不同的话,我正在使用打字稿。
===编辑===
这是错误信息。这是我找到解决方案的地方。
/home/dean/src/react/projects/room-reservations-ui_/src/App.tsx
TypeScript error in /home/dean/src/react/projects/room-reservations-ui_/src/App.tsx(5,29):
Could not find a declaration file for module 'react-router-dom'. '/home/dean/src/react/projects/room-reservations-ui_/node_modules/react-router-dom/index.js' implicitly has an 'any' type.
Try `npm i --save-dev @types/react-router-dom` if it exists or add a new declaration (.d.ts) file containing `declare module 'react-router-dom';` TS7016
3 | import './App.css';
4 | import Navbar from "./components/Navbar";
> 5 | import {BrowserRouter} from "react-router-dom";
| ^
6 |
7 | function App() {
8 | return (
简单地说,@types/react-router-dom
包含类型定义。它旨在与打字稿一起使用。你可以看到更多关于这个 here.
yarn add react-router-dom
这是安装 react-router-dom
,没有任何类型,如果您尝试仅使用此包启动您的应用程序,您将看到收到的消息
Could not find a declaration file for module 'react-router-dom'.
这并不意味着 react-router-dom
有错误,但 Typescript 没有为它声明的类型,该项目可能是用 Javascript 制作的,或者类型声明在其他地方。
yarn add @types/react-router-dom
这将从 DefinitelyTyped(https://github.com/DefinitelyTyped/DefinitelyTyped) 安装 react-router-dom 的类型,这是一个进行声明的存储库,因此我们可以为仅为Javascript,但其他人为我们“打字”了。
@types/
这个前缀是一个组织,它会引用 DefinitelyTyped 存储库中的 react-router-dom 包,它不包含 react-router-dom 代码,只有类型定义,你可以在这里看到 https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-router-dom
它只包含声明,当 Typescript 找不到您正在使用的模块的声明时,它将无法正确显示类型,因此会给出警告
我遇到了同样的问题。刚刚从具有类型的节点模块中删除 rrd
并再次安装它
正在做
yarn add react-router-dom
失败。该应用程序在启动时抛出错误,Intellij 将来自 react-router-dom
的导入标记为错误。但是做
yarn add @types/react-router-dom
有效。
我找到的所有示例,除了一个显示第一个 yarn add...
命令的示例。这是 react-router-dom
的新内容吗?
如果有什么不同的话,我正在使用打字稿。
===编辑===
这是错误信息。这是我找到解决方案的地方。
/home/dean/src/react/projects/room-reservations-ui_/src/App.tsx
TypeScript error in /home/dean/src/react/projects/room-reservations-ui_/src/App.tsx(5,29):
Could not find a declaration file for module 'react-router-dom'. '/home/dean/src/react/projects/room-reservations-ui_/node_modules/react-router-dom/index.js' implicitly has an 'any' type.
Try `npm i --save-dev @types/react-router-dom` if it exists or add a new declaration (.d.ts) file containing `declare module 'react-router-dom';` TS7016
3 | import './App.css';
4 | import Navbar from "./components/Navbar";
> 5 | import {BrowserRouter} from "react-router-dom";
| ^
6 |
7 | function App() {
8 | return (
简单地说,@types/react-router-dom
包含类型定义。它旨在与打字稿一起使用。你可以看到更多关于这个 here.
yarn add react-router-dom
这是安装 react-router-dom
,没有任何类型,如果您尝试仅使用此包启动您的应用程序,您将看到收到的消息
Could not find a declaration file for module 'react-router-dom'.
这并不意味着 react-router-dom
有错误,但 Typescript 没有为它声明的类型,该项目可能是用 Javascript 制作的,或者类型声明在其他地方。
yarn add @types/react-router-dom
这将从 DefinitelyTyped(https://github.com/DefinitelyTyped/DefinitelyTyped) 安装 react-router-dom 的类型,这是一个进行声明的存储库,因此我们可以为仅为Javascript,但其他人为我们“打字”了。
@types/
这个前缀是一个组织,它会引用 DefinitelyTyped 存储库中的 react-router-dom 包,它不包含 react-router-dom 代码,只有类型定义,你可以在这里看到 https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-router-dom
它只包含声明,当 Typescript 找不到您正在使用的模块的声明时,它将无法正确显示类型,因此会给出警告
我遇到了同样的问题。刚刚从具有类型的节点模块中删除 rrd
并再次安装它