Typescript 如何为npm包中的对象声明新属性?

Typescript 如何为npm包中的对象声明新属性?,typescript,Typescript,代码: 打字错误 import * as request from 'superagent'; request .get('https://***.execute-api.eu-west-1.amazonaws.com/dev/') .proxy(this.options.proxy) 输入请求的注释 Property 'proxy' does not exist on type 'SuperAgentRequest' 我尝试进行类型定义(未能成功消除TypeScript错

代码:

打字错误

import * as request from 'superagent';

request
    .get('https://***.execute-api.eu-west-1.amazonaws.com/dev/')
    .proxy(this.options.proxy)
输入请求的注释

Property 'proxy' does not exist on type 'SuperAgentRequest'
我尝试进行类型定义(未能成功消除TypeScript错误):


在声明文件中我做错了什么?

首先,在声明模块时,不要忘记在superagent周围加上双引号

假设您没有可以从头开始扩充和声明包的类型,请将以下内容放在其自己的
.d.ts
文件(如globals.d.ts)中:

declare module superagent {
    interface SuperAgentRequest {
        proxy: any;
    }
}
然后,您可以从文件模块写入:

declare module "superagent" {
  interface SuperAgentRequest {
    proxy: any;
  }

  export function get(s: string): SuperAgentRequest;
}
declare module "superagent" {
  interface SuperAgentRequest {
    proxy: any;
  }

  export function get(s: string): SuperAgentRequest;
}
import * as request from "superagent";

request
  // get returns request.SuperAgentRequest
  .get("https://***.execute-api.eu-west-1.amazonaws.com/dev/")
  .proxy(this.options.proxy);