javascript - Typescript: Udvidelse af Set i klasse forårsager fejl (Konstruktør Set kræver 'new')
Jeg prøver at implementere nogle grundlæggende operationer på Set-objektet som det står her
Dette er koden
export class Conjunto extends Set<any>{
constructor(initialValues?) {
super();
return new Conjunto(initialValues);
}
isSuperset(subset) {
//some code
}
}
Har I nogen idé om, hvordan man får det til at fungere? Eller gør jeg noget forkert?
I øjeblikket bruger jeg hacken, som denne fyr fandt her
Svar #1
hvis du prøver at tilføje funktioner til Set-prototypen, eller tilføje polyfills til Set, kan du gøre følgende:
declare global {
interface Set<T> {
// polyfill
isSuperset(subset: Set<T>) : boolean;
// new function
someNewFunc(): boolean;
}
}
// add polyfill to the Set prototype as mentioned in the doc you provided: https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Set
Set.prototype.isSuperset = function(subset) {
for (var elem of subset) {
if (!this.has(elem)) {
return false;
}
}
return true;
}
//add the new someNewFunc;
Set.prototype.someNewFunc = function() {
// some logic here...
return true;
}
at bruge:
stringSet = new Set<string>()
stringSet.isSuperset(someOtherSet);
stringSet.someNewFunc(); // returns true
