等效于使用typescript的静态类继承的super

时间:2014-02-02 18:52:45

标签: inheritance static typescript

我想知道是否有相当于super来调用来自孩子的静态方法。因为到目前为止,我只能使用super从孩子那里调用公共非静态方法。

我想我将不得不使用父级的整个名称来调用静态方法,但我还是要问,到目前为止,在打字稿论坛上找不到任何有用的东西......

1 个答案:

答案 0 :(得分:3)

与许多编程语言(例如C#)一样,TypeScript无法在没有直接命名调用的情况下调用基类static方法。

您需要使用整个类名来调用静态方法。根据功能的性质,您可能只想考虑使功能非静态。

有趣的是,用于访问基类的变量在技术上是可用的,但编译器会发出有关不正确使用变量的警告。

今天你可以:

static MyMethod1():void {
   _super.MyMethod1();
}

生成:

var B = (function (_super) {
    __extends(B, _super);
    function B() {
        _super.apply(this, arguments);
    }
    B.myMethod1 = function () {
        _super.myMethod1();
    };
return B;
})(A);

生成有效的JavaScript代码,允许访问超类(但是,它会生成警告,我不推荐它)。