扩展数组<编号>

时间:2016-02-11 08:46:59

标签: typescript

为什么以下内容无法正常工作:

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”中实现构造函数没有任何区别。

1 个答案:

答案 0 :(得分:1)

您的代码转换为

{{1}}

问题是您不再处理具有特殊属性的原始本机类型。所以你的扩展类型 - 即使你会成功 - 会受到严重的限制而且会让其他人感到困惑。

细节和陷阱可以找到Axel Rauschmayer的文章:http://www.2ality.com/2013/03/subclassing-builtins-es6.html