TypeScript / Angularでインターフェースとモデルを使用するタイミング 質問する

TypeScript / Angularでインターフェースとモデルを使用するタイミング 質問する

最近、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);
      });
    });

おすすめ記事