Size: a a a

2018 June 06

AK

Aleh Kashnikau in TypeScript
Кастит очень просто - не кастит
источник

AK

Aleh Kashnikau in TypeScript
JavaScript верстальщик
Как зло? В ООП это ведь обычное дело тайп кастинг.
Или, например, когда у тебя часть кода из  JS импорируется.
Или на крайняк типизация в композиции из нескольких хоков у тебя не завелась, то просто делаешь as any as React.ComponentClass<PropTypes>.

А вот почему тут as в конце, если можно просто анотировать  let user: UserModel[]
Правильно as не использовать
источник

l

la gente está muy loca in TypeScript
А хорошо — когда он требуется как можно реже by design. Иначе будет вечно неправильно
источник

AK

Aleh Kashnikau in TypeScript
Ну т.е. да, as это повод задуматься
источник

M

MVP Владимир in TypeScript
Всем привет
источник

МХ

Максим Храмцов in TypeScript
источник

PF

Pawel Filimonenkow in TypeScript
с каким поведением?
источник

AK

Alex Kondakov in TypeScript
источник

МХ

Максим Храмцов in TypeScript
если throw ошибки вынести в отдельную функцию onError, то компилятор не понимает, что поток выполнения прерывается на месте вызова этой функции onError
источник

МХ

Максим Храмцов in TypeScript
если throw ошибки вынести в отдельную функцию onError, то компилятор не понимает, что поток выполнения прерывается на месте вызова этой функции onError
источник

МХ

Максим Храмцов in TypeScript
в strict: true моде
источник

МХ

Максим Храмцов in TypeScript
если убираю флаг strict то норм(
источник

с

сomorsiс in TypeScript
Максим Храмцов
если throw ошибки вынести в отдельную функцию onError, то компилятор не понимает, что поток выполнения прерывается на месте вызова этой функции onError
Добавь сигнатуру :never
источник

МХ

Максим Храмцов in TypeScript
в playground в первой строчке есть эта сигнатура
источник

с

сomorsiс in TypeScript
А, не посмотрел
источник

c

cevek in TypeScript
Максим Храмцов
в playground в первой строчке есть эта сигнатура
добавь просто return onError, суть же не поменяется
источник

МХ

Максим Храмцов in TypeScript
ага - return помогло
источник

МХ

Максим Храмцов in TypeScript
спасибо
источник

PF

Pawel Filimonenkow in TypeScript
есть такой вот класс
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 в обощённом виде, чтобы какой то цикл по всем полям обеих классов?
источник

J

JavaScript верстальщик in TypeScript
А  type guards только с if работает? Тернарки не понимает?
источник