2017-06-01 5 views
0

Nur eine einfache Frage. Wenn ich 2 Klassen mit 2 Methoden mit dem gleichen Namen habe ... was passiert, wenn ich diese 2 Klassen (in einer neuen Klasse) implementieren will, wenn ich "applyMixins" anrufe?Was passiert mit Methoden mit demselben Namen während der Implementierung?

Danke.

+0

Haben Sie es selbst versucht? Was ist passiert? Teilen Sie Ihren Code –

+1

Der TypeScript-Compiler gibt (etwas) lesbares JavaScript aus - Sie können dies selbst herausfinden, wenn Sie die Ausgabedatei öffnen. –

Antwort

0
class First{ 
     name: string; 
     methodA(name: string){ 
      this.name= name; 
     } 
    } 

    class Second{ 
     id: string; 
     methodA(id: string){ 
      this.id= id; 
     } 
    } 

    class newClass implements First, Second { 
     id: string; 
     name: string; 
     methodA:()=> void; 
    } 
    applyMixins(newClass, [First, Second]); 
    function applyMixins(derivedCtor: any, baseCtors: any[]) { 
     baseCtors.forEach(baseCtor => { 
      Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => { 
       derivedCtor.prototype[name] = baseCtor.prototype[name]; 
      }); 
     }); 
    } 
    var Pluto = new newClass(); 

    console.log(Pluto.methodA); 

Dies ist mein Code (nur ein Beispiel, um zu sehen, was passiert ...). Die Ergebnisse in meinem Protokoll sind eine Funktion, die wie eine Methode der ZWEITEN KLASSE geschrieben wurde. Ist das korrekt? danke

Verwandte Themen