为什么以下内容无法正常工作:
class MyArray extends Array<number>
{
constructor(n: number)
{
super(n);
}
}
function initalize()
{
var myArray = new MyArray(4);
var l = myArray.length; // l should be 4
}
“l”结果是0而不是4,这是我所期待的。我是否在“MyArray”中实现构造函数没有任何区别。
答案 0 :(得分:1)
您的代码转换为
{{1}}
问题是您不再处理具有特殊属性的原始本机类型。所以你的扩展类型 - 即使你会成功 - 会受到严重的限制而且会让其他人感到困惑。
细节和陷阱可以找到Axel Rauschmayer的文章:http://www.2ality.com/2013/03/subclassing-builtins-es6.html