我有一个打字稿界面:
export interface LatLng {
constructor(lat: number, lng: number): void;
lat(): number;
lng(): number;
}
具有LatLng类型的数组:
path: Array<LatLng>;
如何将元素推送到此数组?
答案 0 :(得分:2)
实施界面
export class LatLngNew implements LatLng {
constructor(public lat: number, public lng: number) {}
}
你可以这样写
this.path.push(new LatLngNew(2,3))
您也可以像这样定义数组类型
path: LatLng[];
答案 1 :(得分:1)
如果你只有一个界面,那么你不应该有constructor
,它应该是这样的:
export interface LatLng {
lat(): number;
lng(): number;
}
然后你可以像这样推送一个新项目:
path.push({
lat: function() { return 0; },
lng: function() { return 0; },
});
您还可以为它创建工厂功能:
function createLatLng(lat: number, lng: number): LatLng {
return {
lat: function() { return lat; },
lng: function() { return lng; }
};
}
如果你想要一个课程,那么你就这样做:
class LatLng {
constructor(private _lat: number, private _lng: number) {}
lat() {
return this._lat;
}
lng() {
return this._lng;
}
}
推送一个像这样的新实例:
path.push(new LatLng(0, 0));