Angular扩展具有依赖关系的Array

时间:2017-10-02 19:11:09

标签: angular typescript angular-cli

我想创建一个Angular模块。在这个模块中,我想用一个属性' http'来扩展数组。 Angular的类型' HttpClient'。

要扩展数组,我创建了一个typings.d.ts文件,如下所示:

import {HttpClient} from '@angular/common/http';

interface Array<T> {
  http: HttpClient;
}

然后我有一个带有以下内容的array.ts文件(例如; undefined将替换为HttpClient实例):

Array.prototype.http = undefined;

在这一行,我收到以下错误:

  

财产&#39; http&#39;类型&#39;任何[]&#39;

上不存在

但是,当我从typings.d.ts文件中删除import语句时,原始错误消失,但我在typings.d.ts文件中出现以下错误

  

无法找到名称&#39; HttpClient&#39;

我可能错过了有关模块如何在Typescript中工作的内容 我使用的是TS vs 2.3.4

1 个答案:

答案 0 :(得分:0)

我可以通过在全局范围内声明Array接口来使其工作

typings.d.ts

import {HttpClient} from '@angular/common/http';

declare global {
   interface Array<T> {
      http: HttpClient;
   }
}

https://www.typescriptlang.org/docs/handbook/declaration-merging.html#global-augmentation