Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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
Angular Angualar 8:预定义值作为模型中的属性_Angular_Typescript - Fatal编程技术网

Angular Angualar 8:预定义值作为模型中的属性

Angular Angualar 8:预定义值作为模型中的属性,angular,typescript,Angular,Typescript,比方说,我在定义模范人物 export class Person { public firstName: string; public lastName: string; public gender: ???; } 我希望性别不是“男性”就是“女性” 我想我必须创建另一个类(在同一个模型中或单独???) 并构造值[{0:“男性”},{1:“女性”}] 这样做对吗? 如果是,我如何在个人模型中定义性别类型?首先,在Typescript中,对于只有属性的模型,使用接口而不是类。仅当需要构造函

比方说,我在定义模范人物

export class Person {
 public firstName: string;
 public lastName: string;
 public gender: ???;
}
我希望性别不是“男性”就是“女性”

我想我必须创建另一个类(在同一个模型中或单独???)

并构造值
[{0:“男性”},{1:“女性”}]

这样做对吗?
如果是,我如何在个人模型中定义性别类型?

首先,在Typescript中,对于只有属性的模型,使用接口而不是类。仅当需要构造函数并定义执行计算工作的方法时才使用类

有3种方法可以解决您的问题,您可以使用您提到的相同界面,也可以将性别定义为
enum
,或者执行以下操作:

export interface Person {
 public firstName: string;
 public lastName: string;
 public gender: 'Male' | 'Female';
}

使用
boolean
类型

公共性别:布尔值


如果
gender
值为true,则表示男性,否则表示女性。就这样

你可以按照自己的方式上课,然后像这样定义它:

export class Person {
 public firstName: string;
 public lastName: string;
 public gender: Gender;
}
或者,使用字符串:

export class Person {
 public firstName: string;
 public lastName: string;
 public gender: "Male" | "Female";
}

这样您就不需要另一个类。

您可以使用enum

export enum Gender{
 Male,
 Female,
 Other
}

export class Person {
 public firstName: string;
 public lastName: string;
 public gender: Gender;
}

那么变性人就不在范围之内了!哦然后我们可以和其他人一起回答:
公共性别:'mean'|'mean'|'Other'太好了。延伸到它的问题。如果将来我想在其他语言中使用这些值呢。我会将它们存储在BE(字典)中,并从API调用中获取。那个么我应该使用类还是接口呢?这不重要,因为API通信通常是通过字符串进行的。Typescript中接口和类之间的区别在于接口不会被传输到Javascript,因此如果您一直使用类,那么您的应用程序将比使用接口时更大。当您想在初始化对象时执行某些工作时,例如,如果您想设置默认值、进行某些计算或使用某些方法等等,则应使用类。但仅对于属性,最好使用接口。
export enum Gender{
 Male,
 Female,
 Other
}

export class Person {
 public firstName: string;
 public lastName: string;
 public gender: Gender;
}