インターフェースをまだうまく理解できてません。
このコードはとある参考書のコードなのですが、まずインターフェースを消してインターフェースを実装しなくても全く同じ結果が得られます。
それと、フィールドの宣言(?)
firstName: string;
lastName: string;
age: number;
のところも、インターフェースを実装したことにより例えば
firstName: "太郎";
みたいに書けるのかなと思ったらエラーが出て…。
ここでインターフェースに用意された型の宣言と全く同じ内容を書く意味もよく分からずで…。
typescript
1 2interface Member{ 3 firstName: string; 4 lastName: string; 5 age: number; 6 getMemberFullName():string; 7} 8 9class NormalMember implements Member{ 10 11 firstName: string; 12 lastName: string; 13 age: number; 14 15 constructor(catchFN: string,catchLN: string,catchA: number){ 16 this.firstName = catchFN; 17 this.lastName = catchLN; 18 this.age = catchA; 19 } 20 21 getMemberFullName(): string{ 22 return this.firstName + "・" + this.lastName + "さん"; 23 } 24} 25 26let jane = new NormalMember("ジェーン","オールマン",18); 27 28console.log(jane.firstName); 29 30let resultStr = ""; 31resultStr = jane.getMemberFullName(); 32 33document.body.innerHTML = resultStr;
追記
firstName:"太郎";にして
this.firstName=catchFNを消すとエラーは消えるのですが、
jane.firstNameがundefinedになってしまいます…
なぜでしょうか…(T_T)
追記
これは単純になぜか書き方をミスってしまってました。
firstName = "太郎";
だとできました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/12/12 05:23
2017/12/12 05:42 編集
退会済みユーザー
2017/12/12 06:21 編集
退会済みユーザー
2017/12/12 06:32 編集
2017/12/12 06:44 編集
退会済みユーザー
2017/12/12 06:56
2017/12/12 07:12 編集