在哪里可以找到react-router-dom位置、历史和匹配的类型?

问题描述 投票:0回答:2

当我使用

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

typescript react-router react-router-v4
2个回答
14
投票
import { History, Location } from 'history';
import {match} from 'react-router';

您可以查看

@types/react-router
。在那里您可以看到从
@types/history
定义和导入的所有类型。


0
投票

我知道您已经安装了正确的类型,但想检查它们的源代码。

简而言之:

@types/react-router-dom
已删除,因为
react-router-dom
现在包含类型定义。

您可以在

DefinitelyTyped
上找到 @types/react-router-dom 的过时版本:

  • v4.3
  • v5.3
    DefinitelyTyped
    上可用的最后一个版本),

NPM / 纱线

过时版本的软件包可以使用 NPM 或 Yarn 安装,但这些旧安装可能与当前相应的源代码有很大不同。

react-router-dom
v4.3.2 的类型可能是
@types/[email protected]
。您可以在 NPMYarn 注册表中检查可用版本)
.

您应该能够在./node_modules/@types/react-router-dom/index.d.ts

下的项目文件夹
中找到当前安装的类型定义版本的源代码(或者对于不同版本可能不同但相似)

明确打字

DefinitelyTyped

上的源代码始终是最新的,因此旧版本可能不再存在。

理论上仍然可以在

DefinitelyTyped

上找到旧版本,但根据
issue 7719,似乎没有简单的方法:包与DefinitelyTyped上相应的兼容类型定义之间似乎没有可靠的关系
.

(我什至不明白 NPM 如何知道应该将哪个版本号分配给 DefinitelyTyped
 上的当前类型定义。这还有待找出)
.

您可以尝试在

DefinitelyTyped

 存储库中搜索(例如标题中带有“react-router-dom”
pull 请求),但这并不可靠(标题不标准化)。

克隆

DefinitelyTyped

 存储库,将使您能够检查整个 git 树,并查找旧提交中的文件和更改,但是:

    还是很麻烦,而且
  1. DefinitelyTyped
    存储库在千兆字节范围内,克隆整个存储库需要大量时间和空间。
  2. 今天

react-router-dom
输入:

@types/react-router-dom

 v5.3 的类型定义 
react-router-dom
 已从 
DefinitelyTyped
 中删除(在 
PR #64860commit 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
 已更改。

© www.soinside.com 2019 - 2024. All rights reserved.