function Foo(): string {}
表示
Foo
是返回string
的函数。interface SFC {
(props: Props): any;
}
const Foo: SFC = p => {};
意味着
Foo
是与签名SFC
匹配的匿名函数,并且p
的类型为Props
。如何声明与
function Foo()
匹配的SFC
?语法是什么?即我想使用
function
关键字(不是const
)声明一个函数,而函数本身的类型为SFC
。这些不起作用:
function Foo: SFC () {}
function Foo() {}: SFC
最佳答案
TypeScript使用duck typing,因此,如果结构匹配,则Foo
函数的类型为SFC
。
interface SFC {
(props: any): any;
}
function Foo(props: any): any {
console.log(props);
}
let sfc: SFC = Foo; // Foo is of type SFC.
sfc("Foo");