2015-06-11 2 views
6

der Code unter mir berufen erhalten, indem sie mit großen Schluck diesen Fehler transpiling:Typoskript Compile Fehler nicht einen Ausdruck, dessen Typ fehlt ein Anruf Signatur

[tsc] > C:/Workarea/MyFirstAngular/src/enum/msg.ts(35,33): error TS2349: Cannot invoke an expression whose type lacks a call signature. Failed to compile TypeScript: Error: tsc command has exited with code:2

module MessageUtil { 
    enum Morning { 
    "Good Morning", 
    "Great to see you!", 
    "Good day.", 
    "Lovely day today, isn't it?", 
    "What's up?", 
    "Nice to meet you", 
} 
} 
    export class MessageData { 
     private getRandomElementOfEnum(e : any):string{ 
      var length:number = Object.keys(e).length(); //<-- This is Line 35 
      return e[Math.floor((Math.random() * length)+1)]; 
     } 
     public getRandMorning():string { 
      return this.getRandomElementOfEnum(Morning); 
     } 
    } 
} 

Weiß jemand, was genau meine Schuld?

Die gleiche Sache funktionierte einmal, aber nach ein paar Änderungen kann sie nicht mehr kompilieren.

Mein Setup: -Idee 14 -Node.js -Gulp -gulp-tsc -gulp-Verbindung (für Livereload)

Antwort

17

Jungs, die gleiche Fehlermeldung haben -> Überprüfen Sie Ihre Code- Syntax

Meine Schuld gefunden. Dies ist nicht Java.

private getRandomElementOfEnum(e : any):string{ 
     var length:number = Object.keys(e).length(); //<-- This is Line 35 
     return e[Math.floor((Math.random() * length)+1)]; 
} 

Sollte sein:

private getRandomElementOfEnum(e : any):string{ 
     var length:number = Object.keys(e).length; // <--- WITHOUT() 
     return e[Math.floor((Math.random() * length)+1)]; 
    } 
+2

Hat die genau die gleiche Sache und wurde dort für etwa 20 Minuten bei ihm saß stairing fragen ... – Hector

Verwandte Themen