gpt4 book ai didi

reactjs - 覆盖从 NPM @Types 下载的 V2.2.2 中的 TypeScript 类型

转载 作者:搜寻专家 更新时间:2023-10-30 22:06:41 25 4
gpt4 key购买 nike

我正在使用组件 react-router-bootstrap和来自 DefinitelyTyped 的定义.我的问题是下载的定义与组件不匹配。我已经创建了一个 pull request 来解决这个问题,但是因为我不知道它什么时候会被修补,所以我必须覆盖它。我不能只在本地编辑位于 node_modules\@types 中的类型定义文件,因为我们是一个致力于此项目的团队并且未 checkin node_modules 文件夹。

如何覆盖类型定义?我只想覆盖 LinkContainer.d 文件,因为其他文件有效。

拉取请求:

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/16600

我试图在我的 typings 文件夹中创建一个名为 LinkContainer.d.ts 的文件,该文件是正确的,但没有被拾取。在同一个文件夹中,我有一个 global.d.ts,其接口(interface)可以很好地获取。

/// <reference types="react-router-bootstrap" />
import { ComponentClass } from "react";
import { NavLinkProps } from "react-router-dom";

type LinkContainer = ComponentClass<NavLinkProps>;
declare const LinkContainer: LinkContainer;

export default LinkContainer;

最佳答案

基于这个例子的解决方案:

https://github.com/Microsoft/TypeScript/issues/11137#issuecomment-251755605

在根文件夹中添加一个名为 typings 的文件夹。

编辑 tsconfig.json:

{
"compilerOptions": {
//baseUrl and paths needed for custom typings
"baseUrl": ".",
"paths": {
"*": [ "./typings/*" ]
},
...

typings 文件夹中添加一个名为 react-router-bootstrap 的文件夹(名称应与模块相同),并在其中添加一个名为 index.html 的文件。 d.ts.

在文件 index.d.ts 中添加您的自定义打字或引用:

import { ComponentClass } from "react";
import { NavLinkProps } from "react-router-dom";

type LinkContainer = ComponentClass<NavLinkProps>;
export const LinkContainer: LinkContainer;

现在导入模块时,自定义类型已加载:import { LinkContainer } from 'react-router-bootstrap';

关于reactjs - 覆盖从 NPM @Types 下载的 V2.2.2 中的 TypeScript 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44043492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com