Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS-如何在对象上定义多状态属性_Javascript_Interface - Fatal编程技术网

Javascript JS-如何在对象上定义多状态属性

Javascript JS-如何在对象上定义多状态属性,javascript,interface,Javascript,Interface,我在Angular上创建了这个接口,以便“塑造”前端和服务器之间的对象 export interface RepairNote{ id: number, nombre?: string, telefono?: number, ref?: string marca?: string, averia?: string, fecha?: Date, estado?: /* here */ } 我愿意让“estado”(英语:status)具有不同的封闭组状态,即“待定

我在Angular上创建了这个接口,以便“塑造”前端和服务器之间的对象

export interface RepairNote{
  id: number,
  nombre?: string,
  telefono?: number,
  ref?: string
  marca?: string,
  averia?: string,
  fecha?: Date,
  estado?: /* here */
}
我愿意让“estado”(英语:status)具有不同的封闭组状态,即“待定、完整和封闭”。这意味着estado只能有这3个值中的一个。在我看来,它就像一个布尔值,但有两个以上的状态。这是一个非常简单的问题,我知道它属于OOP的基础知识,但我没有回答,我不知道如何使它工作。

我通常使用“枚举”来处理这类事情:

export enum Status {
  Pending = 'Pending',
  Complete = 'Complete',
  Closed = 'Closed',
}

export interface RepairNote {
  // ...
  status?: Status;
  // ...
}

在这里您可以找到有关枚举的更多信息:

谢谢。这种方式是否“强制”在枚举中有一个定义?如果为它的值编写另一个东西会出错吗?我现在在后端,它不是ts,而是js,所以我不知道在模型上设置什么类型。我输入类型:{},因为没有“enum”。有什么建议吗?如果你在前端和后端都坚持使用TypeScript,它会阻止在代码中设置这样的值。您可以在后端添加的另一个安全层是通过JSON模式验证器运行从客户端接收的所有模型,例如: