【发布时间】:2019-01-30 20:46:17
【问题描述】:
我想用 TypeScript 编写数组扩展:
if (!Array.prototype.remove) {
Array.prototype.remove = function <T>(elem: T): T[] {
return this.filter(e => e !== elem);
}
}
所以我需要为它声明一个接口。该文件中没有任何内容,只是:
declare global {
interface Array<T> {
remove(elem: T): Array<T>;
}
}
但是编译器会哭:
TS2669:全局范围的扩展只能直接嵌套在外部模块或环境模块声明中
有趣的是,当我之前添加这一行时:
import * as $ from "jquery";
(与Array什么的无关——这里没有使用jQuery),编译器没问题。
知道这里发生了什么吗?以及如何在不添加对jquery的引用的情况下声明接口?
【问题讨论】:
标签: typescript