【问题标题】: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


【解决方案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。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-02
        • 2019-02-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多