TypeScriptでオブジェクトを初期化する方法 質問する

TypeScriptでオブジェクトを初期化する方法 質問する

シンプルなモデルクラスがあります

export interface Category {

  name: string;
  description: string;

}

Angular コンポーネントで変数を宣言して初期化する必要があります。試しました:

category: Category = {};

エラー: {} はカテゴリに割り当てることができません

category: Category = new Category();

エラー: カテゴリは型を参照していますが、値として参照されています。

助言がありますか?

ベストアンサー1

希望する結果に応じて、この問題を解決する方法はいくつかあります。

方法1:interfaceclass

export class Category {
  name: string;
  description: string;
}
const category: Category = new Category();

interface方法2:class

export class CategoryObject implements Category {
}
const category: Category = new CategoryObject();

方法3: オブジェクトを完全に指定し、interface

const category: Category = {
  name: 'My Category',
  description: 'My Description',
};

方法4: プロパティをオプションにする

export interface Category {
  name?: string;
  description?: string;
}

const category: Category = {};

方法5: 変数の型を変更するPartial<T>

export interface Category {
  name: string;
  description: string;
}

const category: Partial<Category> = {};

おすすめ記事