带构造函数的Typescript接口 - 如何实现?
问题描述:
我尝试使用下面暴露接口 https://angular-maps.com/api-docs/agm-core/interfaces/LatLng.html#source带构造函数的Typescript接口 - 如何实现?
export interface LatLng {
constructor(lat: number, lng: number): void;
lat(): number;
lng(): number;
}
我需要构建相同的对象使用一个API角度映射库。 我该如何实现这个接口?
答
我没有使用这个库,但如果你确定你需要实例化这样一个对象,然后自己尝试类似:
function createLatLng(lat: number, lng: number): LatLng {
return {
lat: function() {
return lat;
},
lng: function() {
return lng;
}
} as LatLng;
}
let a = createLatLng(0, 0);
let b = createLatLng(10, -10);
接口真的不能没有铸造实现一个对象LatLng
,因为constructor
部分,它应该是该类型的静态声明的一部分。
答
为什么不创建一个组件(或者只是一个类):使用它像
@Component({
selector: 'SomeSpecific',
styleUrls: ['./SomeSpecificComponent.component.css'],
template: '<textarea>{{data?.text}}:{{data.value}}</textarea>'
})
export class SomeSpecificComponent implements LatLng {
lat:number;
lon:number
constructor(lat: number, lng: number){
}
lat(){
return lat;
}
lng()
return lon;
}
}
则:
new SomeSpecificComponent (0,0);
您是否尝试过使用出口yourClassName器具经纬度{} –
你不需要实现它,实现随地图库一起提供。 –
我需要使用从GoogleMapsAPIWrapper公开的api(fitBounds),我需要传递LatLngBounds。要做到这一点,我需要设置我想要在地图上显示的所有点在一个边界对象,这可以使用LatLngBounds.extends api,只接受一个LatLng对象。没有提供可用于在库中创建此对象的实现。 – Aarti