在打字稿中继承访问者

Inherit acessor in typescript

我有一个 class A,它拥有一个包含多个字符串的对象的访问器。 整个事情提供了一种简单的方法来让 url 调用 Vertx API.

我的问题是我想在继承 class A 的子 class B 中重载此 API。

类似的东西:

class A {
    get api () {
        return {
            GET_LESSON : '/lesson/',
        };
    }
}


class B extends A{
    get api () {
        return _.extend(super.api, {
            GET_CALL : '/lesson/call/',
       });
   }
}

但它不起作用,我收到错误消息:

TS2340:Only public and protected methods of the base class are accessible via the 'super' keyword.

为什么我会出现这个错误?这是 Typescript 访问器的预期行为吗?

Is it an intended behaviour for Typescript Accessors

是的。正在此处跟踪:https://github.com/Microsoft/TypeScript/issues/338

尚不支持的原因:当前的super查找非常简单。如前所述,更改会影响性能。