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

时间:2019-10-01 08:47:35

标签: angular typescript

让我定义模型人

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

我希望性别是“男性”或“女性”。

我想我必须创建一个花药类(在相同的模型中还是在单独的模型中?)。

export class Gender {
 public id: number;
 public name: string;
}

并构造值[{0: "Male"},{1: "Female"}]

这是正确的方法吗? 如果是,如何在“人”模型中定义该性别类型?

4 个答案:

答案 0 :(得分:2)

首先,在Typescript中,使用接口而不是仅包含属性的模型的类。仅在需要构造函数并定义进行计算工作的方法时使用类。

有3种解决问题的方法,您可以使用您提到的界面,也可以将Gender定义为SELECT a.ident, MAX(a.date) FROM Table a WHERE NOT EXISTS (SELECT * FROM Table b WHERE a.ident = b.ident AND b.date IS NULL) GROUP BY a.ident; ,或执行以下操作:

enum

答案 1 :(得分:1)

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

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";
}

那样,您就不需要另一堂课了。

答案 2 :(得分:0)

使用boolean类型

public gender: boolean;

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

答案 3 :(得分:0)

您可以使用枚举

export enum Gender{
 Male,
 Female,
 Other
}

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

enum in typescript