当前位置: 首页 > 面试题库 >

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

扈阳辉
2023-03-14
问题内容

我正在使用组件react-router-bootstrap和DefinitelyTyped中的定义。我的问题是下载的定义与组件不匹配。我创建了一个拉取请求来解决此问题,但是由于我不知道何时会打补丁,因此必须覆盖它。我不能只编辑node_modules\@types本地的类型定义文件,因为我们是一个团队,正在处理此项目,并且该node_modules文件夹未签入。

如何覆盖类型定义?我只是不想覆盖LinkContainer.d文件,因为其他文件可以工作。

拉取要求:

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

我试图LinkContainer.d.ts在我的类型文件夹中创建一个名称正确的文件,但该文件没有被拾取。在同一个文件夹中,我的global.d.tswith接口可以很好地拾取。

/// <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(名称应与module相同),并在其中添加名为的文件index.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';



 类似资料:
  • 是否有方法更改在〈代码〉*中定义的接口属性的类型。d、 在typescript中? 例如:中的接口定义为 我想在我写入的typescript文件中更改它 甚至这样也行 这种方法有效吗?当我尝试我的系统时,它没有工作。只是想确认一下这是否可能?

  • 在这个特定的示例中,我扩展了

  • 问题内容: 我正在寻找一种巧妙的方法来覆盖bootstrap类路径中的类。原因是OpenJDK7错误http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7104625 该错误的解决方法是对的一个微小更改(请参阅链接的邮件列表帖子)。因此,我想知道是否有一种简便的方法可以在类路径上重写此受影响的类,而不必重新打包/重建rt.jar(这样,在下次自动更

  • 问题内容: 我正在尝试从open jdk更改某些类,所以我正在创建与open jdk类相同的包结构,并且正在使用netbeans更改类。当我在构建项目时,如果覆盖类中出现问题,我会收到错误消息。如果成功构建了我的项目,则应用程序似乎不考虑我对类的更改,而是使用打开的jdk类。知道我该如何使用我的类而不是openjdk的类? 例: 如果我在项目中创建类 _sun.net.www.protocol.h

  • 我正在开发一个Java中的图形库(https://github.com/aisthesis/java-graph2012 完整的上下文),并且需要覆盖权重边缘类的hashCode(),其中边缘不定向。也就是说,我设置了我的 equals() 覆盖方法,以便对于 2 个加权边 e1 和 e2,如果以下条件之一成立(from() 和 to() 方法返回边的尾部和头顶点),则它们相等: e1.从() =

  • 我试图通过以下方式下载phonegap:,但我一直收到一个错误,我不知道为什么。我确定我有一个节点。JS下载。 npm错误!notarget未找到兼容版本:cordova lib@'lorinbeer/cordova li b.git#pg.3。5.0' npm错误!NotTarget有效的安装目标: npm错误!notarget[“0.21.2”、“0.21.3”] NPM ERR!无目标 np