Size: a a a

Angular - русскоговорящее сообщество

2019 December 14

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Андрей Ч
ок, посмотрю позже. Но я нашел ответ Роба Вормальда из команды Ангуляра
Значит, что Ben Lesh нам врет?)
источник

RC

Roman Chertushkin in Angular - русскоговорящее сообщество
Мне нужнл патчить ключ
источник

И

Илья | 😶 in Angular - русскоговорящее сообщество
Roman Chertushkin
Мне нужнл патчить ключ
Ключ на 9 ?
Дядя Богдан ?
источник

KA

Kulagin Alex in Angular - русскоговорящее сообщество
Андрей Ч
ага, бестпрактис от какого-то левого чела, не автора библиотеки
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
ребята, вот есть у меня тип

export type PageComponent = {
   id: string;
   name: string;
   description: string;
   groupId: string;
   status: PageComponentStatus;
   createdAt: string;
   updatedAt: string;
}


и есть ещё тип

export type PageIncident = {
   id: string;
   name: string;
   message: string;
   components: PageIncidentComponent[];
   createdAt: string;
}


и ещё

export type PageIncidentComponent = {
   id: string;
   status: PageComponentStatus;
}


дело в том, что в PageIncident в массив components приходит укороченная версия PageComponent'а и я создал для этого отдельный тип PageIncidentComponent. Так вот, а можно всё же сделать вот так?:
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
export type PageIncident = {
   id: string;
   name: string;
   message: string;
   components: PageComponent[];
   createdAt: string;
}
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
ну, тобишь, суть в том, что есть некоторые объекты, например, User, но в некоторых других данных приходит укороченный объект User, в котором меньше данных, чем в полном User — так вот нужно ли для каждого такого случая плодить типы, чтобы описать модификации User? Ибо тогда у меня будут типы User, и, например, всякие UserShort, UserExtended и т.п.
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Артур Мудрик
export type PageIncident = {
   id: string;
   name: string;
   message: string;
   components: PageComponent[];
   createdAt: string;
}
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
В последней ссылке пример может быть не очень показательным, так как суть заключается в том, что мы должны сокрыть все детали и работать через один общий метод или тип
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
почитал — не, дискриминэйтед юнионс это не то — там берут несколько типов и объединяют их под одним названием, а потом через if или switch/case работают с каждым отдельно
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
давайте другой пример приведу
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
вот есть у вас юзеры, тип вы назовёте User, скорее всего. А теперь у вас есть страница забаненных юзеров, но в массиве юзеров вам приходит только id и bannedAt поля для каждого юзера, там не приходят first_name и last_name, например. Так вот вы создадите отдельный тип для этого случая — BannedUser — или будете использовать уже существующий тип User, и ничего, что тут в данных приходит неполный объект User, а только несколько полей из всего объекта?
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
и напишите в коллбеке loadSuccess(users: BannedUser[]) или просто loadSuccess(users: User[])?
источник

И

Илья | 😶 in Angular - русскоговорящее сообщество
Артур Мудрик
вот есть у вас юзеры, тип вы назовёте User, скорее всего. А теперь у вас есть страница забаненных юзеров, но в массиве юзеров вам приходит только id и bannedAt поля для каждого юзера, там не приходят first_name и last_name, например. Так вот вы создадите отдельный тип для этого случая — BannedUser — или будете использовать уже существующий тип User, и ничего, что тут в данных приходит неполный объект User, а только несколько полей из всего объекта?
забанненый юзер = есть отметка bannedAt
вот и всё, хз зачем дополнительный тип вводить
источник

АМ

Артур Мудрик in Angular - русскоговорящее сообщество
Илья | 😶
забанненый юзер = есть отметка bannedAt
вот и всё, хз зачем дополнительный тип вводить
нет, забаненный юзер это не «есть отметка bannedAt», а «есть только id и bannedAt и больше никаких полей из обычного User»
источник

AK

Anton K. in Angular - русскоговорящее сообщество
А зачем поля прятать?
источник

AK

Anton K. in Angular - русскоговорящее сообщество
Я бы не делал отдельный тип
источник

YS

Yuri Stepanov in Angular - русскоговорящее сообщество
Если бэк уже такой и шлет юзера с 2мя полями
источник

YS

Yuri Stepanov in Angular - русскоговорящее сообщество
то почему бы и не создать тип для этого
источник