最近、TypeScript を使用した Angular 2 のチュートリアルを視聴しましたが、データ構造にインターフェースをいつ使用し、モデルをいつ使用すればよいのかわかりません。
インターフェースの例:
export interface IProduct {
ProductNumber: number;
ProductName: string;
ProductDescription: string;
}
モデルの例:
export class Product {
constructor(
public ProductNumber: number,
public ProductName: string,
public ProductDescription: string
){}
}
URL から JSON データをロードし、インターフェース/モデルにバインドします。単一のデータ オブジェクトが必要な場合もあれば、オブジェクトの配列を保持したい場合もあります。
どちらを使用すべきですか、またその理由は何ですか?
ベストアンサー1
インターフェースはコンパイル時にのみ存在します。これにより、受信される予定のデータが特定の構造に従っているかどうかのみを確認できます。そのためには、コンテンツをこのインターフェースにキャストできます。
this.http.get('...')
.map(res => <Product[]>res.json());
次の質問を参照してください:
クラスでも同様のことができますが、クラスとの主な違いは、クラスは実行時に存在し (コンストラクター関数)、処理を使用してメソッドを定義できることです。ただし、この場合、オブジェクトを使用できるようにするには、オブジェクトをインスタンス化する必要があります。
this.http.get('...')
.map(res => {
var data = res.json();
return data.map(d => {
return new Product(d.productNumber,
d.productName, d.productDescription);
});
});