2016-03-20 12 views
-1

Ich versuche, meine Konstruktor für Typoskript KlasseConstructor Überlastung mit gespreizten Betreiber Typoskript

constructor(a: T[]) 
constructor(...a: T[]) { 
    a.forEach(e => { 
     //do something with e 
    }); 
} 

zu überlasten Warum der Compiler beschweren sich über die oben? Und irgendwelche Ideen, wie man es repariert?

+0

Bitte fügen Sie die Fehlermeldung zu Ihrer Frage – akz92

Antwort

0

Das bereitgestellte Code-Snippet ist keine Klasse. Angenommen, es ist tatsächlich in Klasse verpackt. Dies sollte richtig (auch im laufenden Betrieb) arbeiten:

class A<T> { 
    constructor(a: T[]); // first overload 
    constructor(...a: T[]); // second overload 
    constructor(a) { // implementation (should implement all overloads) 
     a = arguments.length === 1 ? a : Array.prototype.slice.call(arguments); 
     a.forEach(e => { 
      //do something with e 
      console.log(e); 
     }); 
    } 
} 

var strings = new A<string>(['a']); 
var numbers = new A<number>(1, 2, 4); 

Lesen Sie mehr in Handbook.

+0

Danke. Ich erwartete, dass der Leser herausfinden würde, dass es in einer Klasse verpackt war, als ich das sagte. – Peter

Verwandte Themen