我有一个简单的模型课

export interface Category {

  name: string;
  description: string;

}

我需要声明并初始化一个Angular 分量中的变量.

category: Category = {};

错误:{}不可分配给类别

category: Category = new Category();

错误:类别指的是类型,但被称为值..

有什么建议吗?

推荐答案

根据你想要的结果,有很多方法可以解决这个问题.

Way 1: Convert your interface to a class

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

Way 2: Extend your interface as a class

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

Way 3: Fully specify your object, matching the interface

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

方法4:使属性可选

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

const category: Category = {};

Way 5: Change your variable's type to use Partial<T>

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

const category: Partial<Category> = {};

Typescript相关问答推荐

输入具有相同键但值类型不同的对象

如何准确确定此特定场景中的类型?

如何将函数类型应用到生成器?

调用另一个函数的函数的Typescript类型,参数相同

了解TS类型参数列表中的分配

泛型函数类型验证

如何在使用`Next—intl`和`next/link`时导航

Typescript泛型类型:按其嵌套属性映射记录列表

如何在TypeScrip中从字符串联合类型中省略%1值

<;T扩展布尔值>;

表单嵌套太深

ANGLE独立组件布线错误:没有ActivatedRouting提供程序

将带点的对象键重新映射为具有保留值类型的嵌套对象

复选框Angular 在Ngfor中的其他块中重复

如果判断空值,则基本类型Gaurd不起作用

如何为特定参数定义子路由?

react 路由不响应参数

使用强类型元组实现[Symbol.iterator]的类型脚本?

必需的输入()参数仍然发出&没有初始值设定项&q;错误

类型分布在第一个泛型上,但不分布在第二个泛型上