typescript接口中的箭头函数,返回类型为void

时间:2017-08-16 19:16:39

标签: angular typescript arrow-functions

我正在尝试在我的类型脚本界面中编写箭头功能,如下所示,但是收到错误" Class' ToastrService'错误地实现了界面' IToastr'。"

interface IToastr{
    (message:string,title:string):void;
}

@Injectable()
export class ToastrService implements IToastr {
    (message:string,title:string):void {
         toastr.success(message,title);
    }
}

我的问题是:我们可以在TS接口中定义一个函数签名,返回类型为void ??

我也试过搜索谷歌,但没有找到任何例子。谢谢!!

2 个答案:

答案 0 :(得分:3)

你正在做的事情似乎很好,只是缺少一个函数的名称(或者如果这是一个构造函数,则缺少try { //snip } catch (MySqlException x) { //Error logic } catch(CryptographicException cex) { //logic to handle crypto exception } 关键字)

try
{
    //snip
}
catch (Exception x)
{
    //Error logic for all exceptions
}

答案 1 :(得分:2)

是的,这是可能的。有关详细信息,请参阅官方打字稿。

示例1:

interface SearchFunc {
    (source: string, subString: string): void;
}
let mySearch: SearchFunc;
mySearch = function(source: string, subString: string) {
    // do smth
}

示例2:解决方案:您应该命名您的功能

interface IToastr{
    FuncName(message:string,title:string):void;
}

class ToastrService implements IToastr {
    FuncName(message:string,title:string):void {
         // toastr.success(message,title);
    }
}