如何通过es6类构造数组

时间:2017-12-13 09:41:10

标签: javascript typescript

我期望一个类在我new

时返回一个数组
class MyArray {
  constructor(){

  }
}

const myArray = new MyArray()
Array.isArray(myArray) // Should be true

我曾经这样写过:

class MyArray {
  constructor(){
    const arry = new Array()
    return arry
  }
}

但是当我在Typescript中编写时,返回值arry不是MyArray的类型,因此它会提示错误。

如何解决这个问题?

1 个答案:

答案 0 :(得分:7)

只需在构造函数中扩展Arrayreturn true

class MyArray extends Array{
  constructor(){
    super()
  }
}

<强>演示

&#13;
&#13;
class MyArray extends Array{
  constructor(){
    super()
  }
}

myArray2 = new MyArray()
console.log(Array.isArray(myArray2));
&#13;
&#13;
&#13;