我想知道是否有相当于super
来调用来自孩子的静态方法。因为到目前为止,我只能使用super
从孩子那里调用公共非静态方法。
我想我将不得不使用父级的整个名称来调用静态方法,但我还是要问,到目前为止,在打字稿论坛上找不到任何有用的东西......
答案 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代码,允许访问超类(但是,它会生成警告,我不推荐它)。