我有这个导出功能:
export function foo(){
setTimeout(function(){
foo.x = y; // add a property to foo fn
},3000);
}
如何用TypeScript声明foo可能有一个名为“x”的属性?
我唯一的猜测就是做这样的事情:
export const foo : FooType = function(){
setTimeout(function(){
foo.x = y; // add a property to foo fn
},3000);
}
其中FooType是一个界面:
interface FooType {
foo?: YType
}
但我不认为该解决方案有效。
答案 0 :(得分:1)
您的界面应该有效。实际上,您可以将函数签名本身添加到接口:
interface FooType {
(): void;
x?: string
}
export const foo: FooType = function () {
setTimeout(function () {
foo.x = "some value";
}, 3000);
}