我希望声明一个函数声明的类型,如下所示:
function foo(){
}
但是,我不知道该怎么做。相反,我只是将上面的内容更改为函数表达式,如下所示:
const foo = function(){
};
然后我可以添加类型信息,如下所示:
const foo : ISpecialFunc = function(){
};
foo.x = 'bar'; // etc
有没有办法为一个声明而不是表达式的函数声明类型信息?或者这可能没有意义,或者不应该有意义?
答案 0 :(得分:1)
这样的事情:
type ISpecialFunc = {
(): void;
x: string;
};
const foo = function () {
} as ISpecialFunc;
foo.x = 'bar';
我认为你不能用这种方式输入“功能声明” 你可以做的是演员:
function foo() {
};
interface foo {
(): void;
x: string;
};
(foo as foo).x = 'bar';
答案 1 :(得分:0)
设置函数的类型没有意义......而是要键入函数的响应:
function foo(): ResponseTypeHere {
}
如果您正在尝试实际键入该函数,您应该查看可以实现接口的typescripts类
class Foo implements IInterfaceName {
}
const bar = new Foo();