Typescript 0.9.5使用移动函数扩展数组原型

时间:2014-01-21 15:34:09

标签: typescript

我需要使用新的原型函数move来扩展本机数组,它基本上对数组中的项进行排序。但我在编译`

时遇到错误
Array.prototype.move = function (old_index, new_index) {
    while (old_index < 0) {
         old_index += this.length;
    }
    while (new_index < 0) {
        new_index += this.length;
    }
    if (new_index >= this.length) {
        var k = new_index - this.length;
        while ((k--) + 1) {
            this.push(undefined);
        }
    }
    this.splice(new_index, 0, this.splice(old_index, 1)[0]);
    //return this; // for testing purposes
};

1 个答案:

答案 0 :(得分:7)

您得到的错误可能是:

  

属性'move'在'any []'类型的值上不存在。

要解决此问题,除了代码之外,还需要在Array接口上定义方法。例如:

interface Array {
    move(old_index: number, new_index: number): void;
}

注意:在TypeScript 1.0中,您必须编写interface Array<T>