当我使用
withRouter
v4.3.2 中的 react-router-dom
时,它会将三个 props 传递给组件:history
、match
和 location
。在哪里可以找到这三个 TypeScript 对象的类型定义?
我已经检查了此链接https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-router/v3/lib但它没有版本4。此外,那里定义的类型没有不包括
History location and match
。
import { History, Location } from 'history';
import {match} from 'react-router';
您可以查看
@types/react-router
。在那里您可以看到从 @types/history
定义和导入的所有类型。
我知道您已经安装了正确的类型,但想检查它们的源代码。
@types/react-router-dom
已删除,因为 react-router-dom
现在包含类型定义。
您可以在
DefinitelyTyped上找到
@types/react-router-dom
的过时版本:
过时版本的软件包可以使用 NPM 或 Yarn 安装,但这些旧安装可能与当前相应的源代码有很大不同。 (
react-router-dom
v4.3.2 的类型可能是 @types/[email protected]
。您可以在 NPM 或 Yarn 注册表中检查可用版本).
您应该能够在./node_modules/@types/react-router-dom/index.d.ts
下的项目文件夹中找到当前安装的类型定义版本的源代码(或者对于不同版本可能不同但相似)。 明确打字
DefinitelyTyped
上找到旧版本,但根据issue 7719,似乎没有简单的方法:包与
DefinitelyTyped
上相应的兼容类型定义之间似乎没有可靠的关系.
DefinitelyTyped
上的当前类型定义。这还有待找出). 您可以尝试在
DefinitelyTyped
存储库中搜索(例如标题中带有“react-router-dom”的 pull 请求),但这并不可靠(标题不标准化)。 克隆
DefinitelyTyped
存储库,将使您能够检查整个 git 树,并查找旧提交中的文件和更改,但是:
DefinitelyTyped
存储库在千兆字节范围内,克隆整个存储库需要大量时间和空间。
react-router-dom
输入:
@types/react-router-dom
v5.3 的类型定义
react-router-dom
已从
DefinitelyTyped
中删除(在PR #64860、commit 5c6e1a823db),因为
react-router-dom
自 v6(*) 以来就包含了类型定义。 (还删除了
@types/react-router
v5.1 的
react-router
以及其他)。类型与其他代码一起在不同的源文件中定义,例如在
index.tsx 文件中。
(*) 似乎这是与 react-router
v6.0.0一起发布的,尽管我在任何更改日志中找不到提到的内容。相关提交是 12489c1bbb 可以在
DefinitelyTyped/blob/3e4c9a.../types/react-router-dom/index.d.ts. 检查此删除之前的最后一个版本
react-router-dom
v4.3.2
react-router-dom
v4.3.2 版本似乎并不正式存在,尽管它可以安装。仅列出v4.3.1(源)和v5.0.0(源)。 我找到了类型定义
@types/react-router-dom
v4.3、changes 和 源代码,通过检查哪个提交行
// Type definitions for React Router 4.3
已更改。