如何从本机构造函数typescript扩展

How to extend from native constructor typescript

本文关键字:typescript 扩展 构造函数 本机      更新时间:2023-09-26
class ExtendSet<T> extends Set<any> {
  constructor(value: any) {
    super(value);
  }
}
var s = new ExtendSet([1, 2, 3, 4, 5]);
console.log(s);

TypeError: Constructor Set require 'new'

实际上,我只是想给Set Object扩展一些方法,比如toArray():any[]

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "moduleResolution": "node",
    "sourceMap": true,
    "types": [
      "mocha",
      "node",
      "typescript",
      "core-js"
    ]
  },
  "exclude": [
    "node_modules"
  ]
}

我不知道为什么你得到这个错误。如果您转到这个playground代码片段,您将看到它没有抛出任何错误。也许你用的是过时版本的打字稿。

关于你想要达到的目标:

我只是想扩展Set Object的一些方法,像toArray():any[]

更简单的方法是这样做:

interface Set<T> { 
    toArray: () => any
}
Set.prototype.toArray = () => { 
    // write your code here
}