1. ホーム
  2. typescript

[解決済み] TypeScriptでオブジェクトを初期化する方法

2022-03-18 21:37:09

質問

簡単なモデルクラスがあります

export interface Category {

  name: string;
  description: string;

}

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

category: Category = {};

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

category: Category = new Category();

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

何か提案はありますか?

解決方法は?

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

方法1: interfaceclass

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

方法2: 拡張する interface として 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> = {};