如何在TypeScript中向以前实例化的对象添加函数和变量

时间:2017-03-10 18:31:42

标签: 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 个答案:

答案 0 :(得分:1)

您可以使用TypeScript提供的模块扩充技术。这是一个简单的例子(来自官方documentation):

// 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());