温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - How to initialize an object in TypeScript
typescript

其他 - 如何在TypeScript中初始化对象

发布于 2020-04-03 23:56:35

我有一个简单的模型课

export interface Category {

  name: string;
  description: string;

}

我需要在 Angular 组件中声明并初始化变量。尝试过:

category: Category = {};

错误:{}无法分配给类别

category: Category = new Category();

错误:类别是指一种类型,但被称为值。

有什么建议?

查看更多

提问者
Aragorn
被浏览
24
Ian MacDonald 2020-03-10 23:38

有多种方法可以解决此问题,具体取决于您所需的结果。

方法1:将您的内容转换interfaceclass

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

方式2:将自己扩展interfaceclass

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> = {};