我的回调目前定义如下:
onShow: Function;
并且这样称呼:
if (this.onShow) {
this.onShow({ $currentPosition: this.currentLatLngPosition });
}
这个问题的主要问题是它不是类型安全的。如何更改onShow
的签名以获得更好的类型安全性?
我发现我可以更好地定义它
onShow: () => void;
但我无法弄清楚如何在那里获得正确的函数参数。这不起作用:
onShow: ({ $currentPosition: google.maps.LatLng }) => void;
请注意,奇怪的json参数语法是Angular组件回调要求。
答案 0 :(得分:3)
interface Config {
$currentPosition: string; // Or whatever the type of the property is.
}
type myFunc = (config: Config) => void;
您不必创建界面:
type myFunc = (config: { $currentPosition:string }) => void;