如何通过es6类构造数组

SWA*_*ANG 0 javascript typescript

我希望一个类在new它返回时返回一个数组

class MyArray {
  constructor(){

  }
}

const myArray = new MyArray()
Array.isArray(myArray) // Should be true
Run Code Online (Sandbox Code Playgroud)

我以前用这种方式写它:

class MyArray {
  constructor(){
    const arry = new Array()
    return arry
  }
}
Run Code Online (Sandbox Code Playgroud)

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

如何解决这个问题?

gur*_*372 7

只是延长Arrayreturn true构造函数

class MyArray extends Array{
  constructor(){
    super()
  }
}
Run Code Online (Sandbox Code Playgroud)

演示

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

myArray2 = new MyArray()
console.log(Array.isArray(myArray2));
Run Code Online (Sandbox Code Playgroud)