在typescript中继承acessor

时间:2017-06-08 15:18:40

标签: typescript inheritance accessor

我有一个A类,它拥有一个包含多个字符串的对象的访问器。 整个过程提供了一种简单的方法来获取调用Vertx API的URL。

我的问题是我想在继承A类的子类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 Accessors的预期行为吗?

1 个答案:

答案 0 :(得分:1)

  

它是Typescript Accessors的预期行为

是。这是在这里跟踪:https://github.com/Microsoft/TypeScript/issues/338

尚未支持的原因:当前super查找非常简单。如上所述,更改有性能影响的问题。