2015-03-30 23 views
13

Posso farlo a dattiloscritto?estendere e implementare in un dattiloscritto di classe

export interface IMyInterface { 
    doSomething():void; 
} 

export class MyBaseClass { 
    myBaseClassHasProperty:string; 

    constructor(){ 
     this.myBaseClassHasProperty = 'some value'; 
    } 
    myBaseClassHasMethods():void{ 
     console.log(this.myBaseClassHasProperty); 
    } 
} 

export class MyClass extends MyBaseClass implements IMyInterface { 
    constructor(){ 
     super(); 
    } 

    doSomething():void{ 
     this.myBaseClassHasMethods(); 
    } 
} 

in runtime ottengo questo

ReferenceError Uncaught: MyBaseClass non è definito

risposta

10

in runtime i get this Uncaught ReferenceError: MyBaseClass is not defined

Sì, è possibile farlo. Il codice che hai postato funzionerà correttamente.

Tuttavia ho il sospetto nel codice vero e proprio lo avete diviso in più file e MyBaseClass è non eseguita prima del codice per MyClass.

Correggere l'ordine JavaScript o utilizzare moduli esterni per fare in modo che l'ordine venga determinato dal caricatore del modulo.

+0

sì, sto usando tsconfig.json per compilare un solo file app.js e il tsc stava creando un file MyBaseClass.js. Ma ancora non funziona, il tsc non sta creando il codice __extends sul file js, ci proverò più tardi. - tsc --version 1.4.1.0 su Mac OS X 10.8 –