javascript - 如何通过es6类构造数组

标签 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的类型,所以提示错误。

如何解决这个问题?

最佳答案

只需在构造函数中扩展Array返回true

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

演示

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

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

关于javascript - 如何通过es6类构造数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47789796/

相关文章:

javascript - 为什么我在 querySelectorAll 上收到错误 TS2339,因为复选框属性 'checked' 不存在

javascript - 我如何修改 tumblr 小书签以发布到特定的 tumblr 博客?

javascript - 工厂方法 HTTP 不工作

javascript - 内容安全策略不从本地主机加载文件

javascript - typescript 中的对象可能是 'null'

typescript - 为什么在泛型类型上添加约束会改变推理行为?

Angular 4组件双向绑定(bind)问题

javascript - 更改 Angular2 中 Select2 的数据和 processResults 上下文

javascript - eslint 规则强制变量在 block 的顶部声明?

Javascript 范围 - 无法访问范围之外的值