使用Typescript分配给类的函数变量

时间:2017-09-23 03:54:06

标签: javascript node.js typescript

假设你有这样的Typescript class

 class CompExt extends Comp {
        public static sum(a: number, b: number): number {return a+b};
    };

函数sum将与原始类略有不同,它必须是静态的。

您的实际代码是

let ff: Function = CompExt;
console.log('the summ works fine',ff.sum(1,2));

代码编辑器和编译都会警告我:

bas.ts(47,16): error TS2339: Property 'sum' does not exist on type 'Function'. 

有没有办法避免编译错误?如果我使用any而不是Function everthing就好了,但我想知道Typescript是否支持这样的风格。

2 个答案:

答案 0 :(得分:2)

不要将类型指定为Function,因为它不是通用函数,而是CompExt

如果您确实要指定类型,可以使用:let ff: typeof CompExt = CompExt

答案 1 :(得分:-1)

可以使用装饰器提供可能的解决方案。请检查此回答Static property on a class