Vad*_*est 4 inheritance static typescript
我想知道是否有等价super于从孩子调用静态方法。因为到目前为止我只能从孩子那里调用公共非静态方法,使用super.
我想我将不得不使用父级的全名来调用静态方法,但无论如何我都在问,到目前为止在打字稿论坛上没有发现任何有用的信息......
与许多编程语言(例如 C#)一样,TypeScript 无法在static没有直接命名调用的情况下调用基类方法。
您需要使用整个类名来调用静态方法。根据功能的性质,您可能只想考虑使功能非静态。
有趣的是,用于访问基类的变量在技术上是可用的,但编译器会抛出有关变量使用不当的警告。
你今天可以:
static MyMethod1():void {
_super.MyMethod1();
}
Run Code Online (Sandbox Code Playgroud)
产生:
var B = (function (_super) {
__extends(B, _super);
function B() {
_super.apply(this, arguments);
}
B.myMethod1 = function () {
_super.myMethod1();
};
return B;
})(A);
Run Code Online (Sandbox Code Playgroud)
这会生成允许访问超类的有效 JavaScript 代码(但是,它确实会生成警告,我不建议这样做)。