是否可以在typescript中定义一个函数接口?
例如,当我们有诸如之类的东西时meth (a : {b: B, c: C}) : {b: B, c: C} {...}
我们可以写
interface A {
b : B;
c : C;
}
meth (a : A) : A {...}
然而,当我们有类似
的东西时meth (a : (b: B) => C) : (b: B) => C {...}
我们可以做类似的事情,比如定义一个函数类型,以便我们可以编写
meth (a : A) : A {...}
再次?
答案 0 :(得分:1)
接口支持呼叫签名。实际上,您使用的语法可以看作更详细的完整语法的简写:
interface A
{
(b: B) : C
}
function meth (a : A) : A { return a; }
接口语法还具有支持函数的多个重载的优点:
interface A {
(b: B): D
(d: D, b: B): C
}
function meth(a: A) : void
{
a(new B()); // Call overload with one argument
a(new D(), new B()); // Call overload with two arguments
}
meth((b: B | D, d?: D|B) => new D());