答案 0 :(得分:2)
我无法找到文档,但如果super
调用返回不同的this
,那么此新值将在剩余的调用中变为this
。这是ES 2015规范要求的行为。如果查看生成的代码,您会看到super
的返回值在构造函数的其余部分中用作this
:
function RoundButton(config) {
// _this will either be the current this or whatever is returned by _super.call
var _this = _super.call(this, config) || this;
// refercens to this are replaces with _this
_this.config.text = '....'; // <=== Property 'config' does not exist on type 'void'.
return _this;
}
由于此行为已被强制执行,因此您无法按照自己的意愿使用super的返回值,因此这可能是它在类型系统中返回void
的原因。
答案 1 :(得分:0)
为什么你会这样想?
它不是更简单,更具可读性吗?
var me = super(config);
me.config.text = '....'; // <=== Property 'config' does not exist on type 'void'.
super(config);
config.text = '....'; // <=== Easier?