Node.js typescript请求承诺没有重载与此调用匹配

Node.js typescript请求承诺没有重载与此调用匹配,node.js,typescript,request-promise,Node.js,Typescript,Request Promise,以下代码不符合我的请求承诺, 我已经尝试过清理node_模块并再次安装dependecies try { const response = await request(reqOptions) // Error Highlighting `reqOptions`; this.products = _.concat(this.products, response.products); if(response.nextPage){

以下代码不符合我的请求承诺, 我已经尝试过清理node_模块并再次安装dependecies

 try {
        const response = await request(reqOptions) // Error Highlighting `reqOptions`;
        this.products = _.concat(this.products, response.products);
        if(response.nextPage){
          return this.getProductsCatalog(response.nextPage);
        } else {
          return Promise.resolve(this.products);
        }
      } catch(err) {
        logger.error(err);
        return Promise.reject(err);
      }
错误

没有与此调用匹配的重载。 重载第1个,共3个,'(uri:string,options?:RequestPromiseOptions,callback?:RequestCallback):RequestPromise',出现以下错误。 类型为“{headers:{'content-type':string;};}”的参数不能分配给类型为“string”的参数。 重载2/3'(uri:string,callback?:RequestCallback):RequestPromise',出现以下错误。 类型为“{headers:{'content-type':string;};}”的参数不能分配给类型为“string”的参数。 重载3个选项中的第3个,“(选项:(UriOptions和RequestPromiseOptions)|(urlpoptions和RequestPromiseOptions),回调?:RequestCallback):RequestPromise”,出现以下错误。 类型为“{headers:{'content-type':string;};}”的参数不能分配给类型为“(UriOptions&RequestPromiseOptions)|(UrlOptions&RequestPromiseOptions)”的参数。 类型“{headers:{'content-Type':string;};}”不能分配给类型“urlpoptions&RequestPromiseOptions”。 类型{headers:{'content-type':string;}中缺少属性“url”

整体功能

  async getProductsCatalog(url: string): Promise<Product[]>{
    if(url === null) {
      this.products = [];;
      return this.sendGetRequest('/v1/catalog/products', 
        {
          pageSize: 40
        }
      )
      .then((res) => JSON.parse(res))
      .then((res) => {
        const response: ProductCatalogResponse = res;
        this.products = _.concat(this.products, response.products)
        if(response.nextPage) {
          return this.getProductsCatalog(response.nextPage);
        } else {
          return Promise.resolve(this.products);
        }
      });
    } else {
      let reqOptions = {
        headers: {
          'content-type': 'application/json'
        }
      };

      this.visitRequest(reqOptions, 'GET', url, {pageSize: 40}, false)
      try {
        const response = await request(reqOptions);
        this.products = _.concat(this.products, response.products);
        if(response.nextPage){
          return this.getProductsCatalog(response.nextPage);
        } else {
          return Promise.resolve(this.products);
        }
      } catch(err) {
        logger.error(err);
        return Promise.reject(err);
      }
    }

  }
异步getProductsCatalog(url:string):承诺{ 如果(url==null){ 这个。产品=[];; 返回此.sendGetRequest(“/v1/catalog/products”, { 页面大小:40 } ) .then((res)=>JSON.parse(res)) 。然后((res)=>{ 常量响应:ProductCatalogResponse=res; this.products=uu.concat(this.products,response.products) 如果(响应。下一页){ 返回此.getProductsCatalog(response.nextPage); }否则{ 退货承诺.解决(本.产品); } }); }否则{ 让选项={ 标题:{ “内容类型”:“应用程序/json” } }; this.visitRequest(reqOptions,'GET',url,{pageSize:40},false) 试一试{ const response=等待请求(reqOptions); this.products=uu.concat(this.products,response.products); 如果(响应。下一页){ 返回此.getProductsCatalog(response.nextPage); }否则{ 退货承诺.解决(本.产品); } }捕捉(错误){ 记录器错误(err); 退回承诺。拒绝(错误); } } }
这是否不够清楚-
属性“url”在类型“{headers:{'content-type':string;”中缺失;
?您似乎应该将url指定为第一个参数或将其包含在请求选项中。这是否不够清楚-
属性“url”在类型“{headers:{'content-type':string;”中缺失;
?看起来您应该将url指定为第一个参数,或者将其包含在请求选项中。