Size: a a a

2018 June 06

l

la gente está muy loca in TypeScript
Pawel Filimonenkow
есть такой вот класс
export class Game {
   id: number;
   home: string;
   away: string;
   score_home: number;
   score_away: number;
  // ещё до хера полей
}

есть класс, описывающий как изменилась игра
export class GameChanges {
   id: number;
   order: number | null;
   score_home: number | null;
   score_away: number | null;
   in_play: boolean | null;
   time: string | null;
  // и т.д. - ещё до хера полей
}

у класса Game есть метод, которая применяет изменения
applyGameChanges (a:GameChanges) {
       this.order = a.order ? a.order : this.order;
       this.score_home = a.score_home ? a.score_home : this.score_home;
       this.score_away = a.score_away ? a.score_away : this.score_away;
       this.in_play = a.in_play ? a.in_play : this.in_play;
       // и т.д.
   };

Вопрос такой - как нормально переписать applyGameChanges в обощённом виде, чтобы какой то цикл по всем полям обеих классов?
Не на том экономишь
источник

PF

Pawel Filimonenkow in TypeScript
la gente está muy loca
Не на том экономишь
1. взять что-то типа списка строк
2. цикл по полям Game и полям GameChanges
3. если if (GameChanges[filed]) то установить Game[filed] = GameChanges[filed]
источник

PF

Pawel Filimonenkow in TypeScript
как это сделать в ts
источник

l

la gente está muy loca in TypeScript
4. Страдать от использования объектов не по назначению
источник

PF

Pawel Filimonenkow in TypeScript
шта?
источник

l

la gente está muy loca in TypeScript
Если тебе нужно итерироваться по ключам и значениям, ты используешь объекты и классы вместо Map, не по назначению
источник

l

la gente está muy loca in TypeScript
После чего, естественно, огребешь, но жалеть будет уже поздно
источник

PF

Pawel Filimonenkow in TypeScript
la gente está muy loca
После чего, естественно, огребешь, но жалеть будет уже поздно
предлагаешь вместо этих класов всё держать в чём то типа { [K in string]: string | number };?
источник

l

la gente está muy loca in TypeScript
Нет, предлагаю задуматься почему у тебя код разросся так что даже перечислить его затруднительно
источник

PF

Pawel Filimonenkow in TypeScript
la gente está muy loca
Нет, предлагаю задуматься почему у тебя код разросся так что даже перечислить его затруднительно
ну так с сервера приходит сущность с такмими полями. Была мысль это как-то типизировать, но хз, может действительно мапа проще
источник

l

la gente está muy loca in TypeScript
Типизировать хорошо общение с бэком — идеальный вариант
но часто невозможен
источник

PF

Pawel Filimonenkow in TypeScript
la gente está muy loca
Типизировать хорошо общение с бэком — идеальный вариант
но часто невозможен
у меня есть тайпскриптификатор из голанга. он и типизирует собственно - генерирует тайпскрипт из голанга. Не самом же я эту херню написал
источник

l

la gente está muy loca in TypeScript
Ну норм
источник

🐉S

🐉 Vadim Smakhtin in TypeScript
Всем привет. А вакансии можно сюда скидывать?
источник

FB

Foo Bar in TypeScript
Нет
источник

🐉S

🐉 Vadim Smakhtin in TypeScript
А есть какой-то канал для TS вакансий?
источник

FB

Foo Bar in TypeScript
Есть @js_jobs вроде
источник

FB

Foo Bar in TypeScript
Даже @javascript_jobs :)
источник

˗🦊

˗ˏˋ Sasha ˎˊ˗ 🦊 in TypeScript
Foo Bar
Есть @js_jobs вроде
Все так
источник

🐉S

🐉 Vadim Smakhtin in TypeScript
Спасибо большое
источник