超级对象文字

时间:2015-10-28 16:54:00

标签: typescript typescript1.6

ECMAScript 6为对象文字引入了一些增强功能。其中一个是super,它引用了原型对象。

在下面的MDN文件中说:

  

super.prop和super [expr]表达式在类和对象文字中的任何方法定义中都有效。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super

规格: http://www.ecma-international.org/ecma-262/6.0/#sec-super-keyword

所以这段代码:

var obj = {
    __proto__: {
        method() {
            console.log('original');
        }
    },
    method() {
        super.method();
        console.log('new');
    }
};

obj.method();

应将以下内容记录到控制台中:

original
new

但TypeScript 1.6.2甚至没有编译它说它是一个错误:

'super' can only be referenced in a derived class.

在这种情况下,是否意味着TypeScript与ES6不兼容?

1 个答案:

答案 0 :(得分:1)

看起来这是TypeScript中的一个错误。

供参考,请参阅github上的问题: https://github.com/Microsoft/TypeScript/issues/5441