我想创建一个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
答案 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