我正在使用typescript并将一个函数传入另一个函数。
如果我有一个在typescript中被传递到另一个函数的函数,我应该如何编写类型?
我尝试过successHandler: function
,但这似乎不起作用。
export function useSubscription(address: string, successHandler: function) {
successHandler(address)
}
我正在使用typescript并将一个函数传入另一个函数。
如果我有一个在typescript中被传递到另一个函数的函数,我应该如何编写类型?
我尝试过successHandler: function
,但这似乎不起作用。
export function useSubscription(address: string, successHandler: function) {
successHandler(address)
}
使用函数签名声明一个类型,然后将其作为类型传递:
type SuccessHandler = (address: string) => string;
function useSubscription(address: string, successHandler: SuccessHandler) {
successHandler(address)
}
useSubscription
不使用 successHandler
的返回值,因此不需要返回值。 - skot
export function useSubscription(address: string, successHandler: Function) {
successHandler(address)
}
更改在于 Function
的大写 F。
successHandler(address)
,我们应该声明一个类型来确保它能正常工作,即 (address: string) => void
。 - skot(address: string) => void
是合理的,但 (address: string) => ANYTHING
也是有效的。 - Oramaddress
传递给 successHandler
。Function
并不能保证这一点。至于你的第二点,是的,(address: string) => void
允许 (address: string) => 任何东西
。void
关键字告诉 TypeScript 可以忽略返回值。 - undefined在这里,您可以像这样使用回调函数作为强类型参数
class Menu {
addItem(callback: (n: string) => any) : void {
callback('Egg Roles');
}
}
var menu = new Menu();
var itemCallBack = (result: string) : void => {
alert(result);
}
menu.addItem(itemCallBack);
这是一个可行的例子。如果您有任何疑问,请告诉我。