kod çevirisi - TypeScript Derleme Hatası Çağrı imzası olmayan bir türdeki ifadeyi çağırmak mümkün değil
aşağıdaki kodu dönüştürdükten sonra hata mesajı:
[tsc] > C:/Workarea/MyFirstAngular/src/enum/msg.ts(35,33): hata TS2349: Çağrı imzası olmayan bir türdeki ifadeyi çağırmak mümkün değil. TypeScript derlenemedi: Hata: tsc komutu şu kod ile sonlandı: 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);
}
}
}
Biri benim tam olarak ne hatam olduğunu biliyor mu?
Kurulumum: -IDEA 14 -Node.js -Gulp -gulp-tsc -gulp-connect (Livereload için)
Cevap #1
Aynı hata mesajını alan arkadaşlar --> Kod Söz Diziminizi Kontrol Edin
Hatanı buldum. Bu Java değil.
private getRandomElementOfEnum(e : any):string{ var length:number = Object.keys(e).length(); //<-- This is Line 35 return e[Math.floor((Math.random() * length)+1)]; }
Olmalı:
private getRandomElementOfEnum(e : any):string{
var length:number = Object.keys(e).length; // <--- WITHOUT ()
return e[Math.floor((Math.random() * length)+1)];
}
