如何声明对象返回的函数属性的类型

时间:2017-05-23 02:25:15

标签: typescript

当调用函数f时,它返回bar,以便我可以调用bar.baz()。但是,typescript抱怨Property baz does not exist on type (selection: any) => () => void如何声明bar的baz属性来进行编译?

   var f = function foo(){
        function bar(selection : any){
        }
        bar.baz = function(value){

        }
        return bar 
    }

(顺便说一句,我在angular2打字稿项目中有这个代码并且它非常无情。我工作的其他打字稿项目允许你忽略打字稿错误,但这个角度启动项目真的不会编译,所以我一直坚持,直到打字稿问题得到解决)

1 个答案:

答案 0 :(得分:2)

你是说这个吗?

interface foo {
    (selection: any): void;
    baz: (value) => void;
}
var f = function () {
    var bar: foo = function (selection: any) {
    } as any
    bar.baz = function (value) {
    }
    return bar
}