traducción de código - Error de compilación de TypeScript No se puede invocar una expresión cuyo tipo carece de una firma de llamada
mensaje de error después de transpilar el código a continuación:
[tsc] > C:/Workarea/MyFirstAngular/src/enum/msg.ts(35,33): error TS2349: No se puede invocar una expresión cuyo tipo carece de una firma de llamada. Error al compilar TypeScript: Error: el comando tsc ha salido con el código: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);
}
}
}
¿Alguien sabe cuál es exactamente mi culpa?
Mi configuración: -IDEA 14 -Node.js -Gulp -gulp-tsc -gulp-connect (para Livereload)
Respuesta #1
Chicos que tienen el mismo mensaje de error --> Revisen la sintaxis de su código
Encontré mi error. Esto no es 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)]; }
Debería ser:
private getRandomElementOfEnum(e : any):string{
var length:number = Object.keys(e).length; // <--- WITHOUT ()
return e[Math.floor((Math.random() * length)+1)];
}
