Angularの公式チュートリアルをやっていく その5 - Create an interface
Angularの公式チュートリアル「はじめての Angularアプリ」を進めていきます。
一覧
Angularの公式チュートリアルをやっていく その1 - Introduction
Angularの公式チュートリアルをやっていく その2 - Hello world
Angularの公式チュートリアルをやっていく その3 - Create home component
Angularの公式チュートリアルをやっていく その4 - Create housing location component
Angularの公式チュートリアルをやっていく その5 - Create an interface
Angularの公式チュートリアルをやっていく その6 - Add inputs to components
Angularの公式チュートリアルをやっていく その7 - Add property binding to components
Angularの公式チュートリアルをやっていく その8 - Add dynamic values to templates
Angularの公式チュートリアルをやっていく その9 - Use *ngFor in templates
Angularの公式チュートリアルをやっていく その10 - Angular services
Angularの公式チュートリアルをやっていく その11 - Add routing
Angularの公式チュートリアルをやっていく その12 - Customize the details page
Angularの公式チュートリアルをやっていく その13 - Integrate Angular forms
Angularの公式チュートリアルをやっていく その14 - Add search functionality
Angularの公式チュートリアルをやっていく その15 - Add HTTP communication
今回やるのは、↓の部分です。
新しい Angular インターフェースを作成
インターフェイスはTypeScriptで使える型定義機能のひとつです。
インターフェイスなど使った強力な型チェックを利用できることがTypeScriptの大きな魅力ですね。
下記のコマンドでインターフェイスを新規の作成します。
Angularではコマンドでインターフェイスも作れるんですね!
ng generate interface housinglocation
実行結果
CREATE src/app/housinglocation.ts (37 bytes)
app
フォルダ直下にhousinglocation.ts
というファイルが追加されていますね。
housinglocation.ts
に記述されているHousinglocation
インターフェイスはまだ空の状態です。
export interface Housinglocation {
}
アプリケーションを一度ビルドして、生成に不具合がないか確かめます。
ng serve
問題なくブラウザが表示されたので、インターフェイスの生成は正常に行われたようです。
ここで上手くビルドできずエラーとなってしまったら、Housinglocation
インターフェイスの生成が上手くいっていない可能性がありますので、一度生成されたファイルを消して再度生成するか、エラー文を読んで対処しましょう。
新しいインターフェースへプロパティを追加
空のインターフェイスに実装を追加します。
下記のようにhousinglocation.ts
を更新します。
export interface Housinglocation {
+ id: number;
+ name: string;
+ city: string;
+ state: string;
+ photo: string;
+ availableUnits: number;
+ wifi: boolean;
+ laundry: boolean;
}
更新後に保存してもエラーは出ず、アプリケーションは正常に動作しているため、特に問題はなさそうです。
アプリケーションにテスト用のhouseを作成
home.component.ts
に先ほど作成したHousinglocation
インターフェイスをインポートして、新しいhouseデータを作成しましょう。
まだこの段階ではデータをclass
場に作成するだけで、画面には特に変化はないようです。
下記のようにhome.component.ts
を更新します。
import { Component } from '@angular/core';
import { CommonModule } from '@angular/common';
import { HousingLocationComponent } from '../housing-location/housing-location.component';
+ import { HousingLocation } from '../housinglocation';
@Component({
selector: 'app-home',
standalone: true,
imports: [CommonModule, HousingLocationComponent],
template: `
<section>
<form>
<input type="text" placeholder="Filter by city" />
<button class="primary" type="button">Search</button>
</form>
</section>
<section class="results">
<app-housing-location></app-housing-location>
</section>
`,
styleUrls: ['./home.component.css'],
})
- export class HomeComponent {}
+ export class HomeComponent {
+ housingLocation: HousingLocation = {
+ id: 9999,
+ name: 'Test Home',
+ city: 'Test city',
+ state: 'ST',
+ photo: 'assets/example-house.jpg',
+ availableUnits: 99,
+ wifi: true,
+ laundry: false,
+ };
}
おや、下記の部分でエラーが起こっていますね。
+ import { HousingLocation } from '../housinglocation';
どうやら、自動生成されたインターフェイス名Housinglocation
の文字'l(エル)'が小文字であった為エラーが起こっているようです。
このインポートで呼び出そうとしているエルは大文字ですね。
今回はhousinglocation.ts
ファイルのインターフェス名のエルを大文字にすることで対処します。
- export interface Housinglocation {
+ export interface HousingLocation {
エラーが消えました!
更新後に保存してもエラーは出ず、アプリケーションは正常に動作しているため、特に問題はなさそうですね。
これにてCreate an interfaceは完了です。
← 前へ Angularの公式チュートリアルをやっていく その4 - Create housing location component
→ 次へ Angularの公式チュートリアルをやっていく その6 - Add inputs to components
Discussion