指定Typescript函数回调的参数

时间:2017-05-10 09:10:11

标签: angularjs typescript

我的回调目前定义如下:

onShow: Function;

并且这样称呼:

if (this.onShow) {
    this.onShow({ $currentPosition: this.currentLatLngPosition });
}

这个问题的主要问题是它不是类型安全的。如何更改onShow的签名以获得更好的类型安全性?

我发现我可以更好地定义它

onShow: () => void;

但我无法弄清楚如何在那里获得正确的函数参数。这不起作用:

onShow: ({ $currentPosition: google.maps.LatLng }) => void;

请注意,奇怪的json参数语法是Angular组件回调要求。

1 个答案:

答案 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;