javascript - 如何在 TypeScript 中向已实例化的对象添加函数和变量
我正在 TypeScript 中使用 Google Maps Javascript API。在使用该 API 绘制多边形形状后,实际上会创建一个 google.maps.Polygon 对象,并通过回调返回。我想向该对象添加一些函数和变量。
在 TypeScript 中,为一个已实例化的对象添加额外功能和变量,并且提供某种类型信息的现代且正确的方法是什么?
我想向 google.maps.Polygon 添加以下方法
interface Polygon {
setId(id : number);
getId(): number;
getShapeType(): Model.ShapeType;
setShapeType(shapetype: Model.ShapeType);
}
答案#1
您可以使用 TypeScript 提供的模块增强技术。这里有一个简单的示例(来自官方文档):
// map.ts
import { Observable } from "./observable";
declare module "./observable" {
interface Observable<T> {
map<U>(f: (x: T) => U): Observable<U>;
}
}
Observable.prototype.map = function (f) {
// ... another exercise for the reader
}
// consumer.ts
import { Observable } from "./observable";
import "./map";
let o: Observable<number>;
o.map(x => x.toFixed());
