Angualar 8: предопределенные значения как свойство в модели - PullRequest
2 голосов
/ 01 октября 2019

Допустим, я определяю модель Person

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

Я хочу, чтобы пол был либо 'Мужской', либо 'Женский'.

Я думаю, мне нужно создать класс пыльников (втой же модели или отдельно ??).

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

и построить значения [{0: "Male"},{1: "Female"}]

Это правильный способ сделать это? Если да, то как мне определить тип пола в модели Person?

Ответы [ 3 ]

2 голосов
/ 01 октября 2019

Прежде всего в Typescript используйте интерфейсы вместо классов для моделей с только атрибутами в них. Используйте классы только тогда, когда вы хотите конструктор и определяете методы, которые выполняют вычислительную работу.

Есть 3 способа решения вашей проблемы, вы можете использовать интерфейс в том же самом, что вы упомянули, или вы можете определить Gender какenum, или вы делаете это:

export interface Person {
 public firstName: string;
 public lastName: string;
 public gender: 'Male' | 'Female';
}
1 голос
/ 01 октября 2019

Вы можете либо пойти своим путем по классу, а затем определить его следующим образом:

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

Таким образом, вам не нужен другой класс.

0 голосов
/ 01 октября 2019

Использовать boolean тип

public gender: boolean;

Если значение gender истинно, это означает, что мужчина или женщина. Вот и все

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...