如何在打字稿中声明函数类型
Posted
技术标签:
【中文标题】如何在打字稿中声明函数类型【英文标题】:How to declare a function type in typescript 【发布时间】:2019-05-05 15:20:14 【问题描述】:我正在使用打字稿并将一个函数传递给另一个函数。
如果我有一个函数被传递给打字稿中的另一个函数,我应该如何编写类型?
我尝试过successHandler: function
,但这似乎不起作用。
export function useSubscription(address: string, successHandler: function)
successHandler(address)
【问题讨论】:
Typescript: How to define type for a function callback (as any function type, not universal any) used in a method parameter的可能重复 【参考方案1】:用函数签名声明一个类型并将其作为类型传递:
type SuccessHandler = (address: string) => string;
function useSubscription(address: string, successHandler: SuccessHandler)
successHandler(address)
【讨论】:
【参考方案2】:你可以像这样使用回调函数作为强类型参数
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);
这是一个工作示例。如果您有任何疑问,请告诉我。
【讨论】:
【参考方案3】:你可以这样声明:
export function useSubscription(address: string, successHandler: Function)
successHandler(address)
更改为Function
的大写 F。
【讨论】:
以上是关于如何在打字稿中声明函数类型的主要内容,如果未能解决你的问题,请参考以下文章