Комментарии 8
Краткое содержание статьи
Так делать не надо, это плохой тон
type MyEvent = CustomEvent<GenericType>
something.addEventListener("my_event", (e: MyEvent) => {
// Очень грязный код, мне прям противно
let data = e.detials
}))
Делайте так, это классно
class MyEvent extends Event {
static readonly eventName = 'my-event';
readonly foo: number;
readonly bar: string;
constructor(foo: number, bar: string) {
super(MyEvent.eventName, { bubbles: true, composed: true });
this.foo = foo;
this.bar = bar;
}
}
something.addEventListener("my_event", (e: MyEvent) => {
// Выглядит намного чище
let {foo, bar} = e
}))
Фух, а то я уж думал generics использовать, спасибо
Забыл про декларацию кастомного типа в классном варианте. И ведь в этом вся суть. Чтобы тип эвента выводился автоматически, чтобы в листенере не выводить тип вручную
Илья, вы бы не просто статьи переводили, а вдумывались в смысл. Сама статья - вода с безосновательными высказываниями, смешанная с вкусовщиной.
Ничто не мешает зарегистрировать свое событие в глобальную зону видимости и это, кстати, можно считать плохим тоном. Ведь, дозапись стандартных событий DOM используется почти никогда, а если и используется, то событие причастно только к определенной ветке дом, а не всему дереву. И когда еще́ один умный человек полезет регистрировать событие с таким же именем в глобалы то столкнется с приколом от компилятора
Какой то псих, походу. Запрещает использовать что-то полезное.
Понимаю, что это перевод скорее всего нейронкой с малой вычиткой, но термин "полезная нагрузка" меня очень смущает, стоило всё-таки оставить payload. Вы прямо общаетесь с коллегами, используя этот термин, "у тебя там в полезную нагрузку поле не передано"?
Плюсую к факту отсутствии вычитки. Для меня первый раз в жизни повстречалось понятие "это даже не девятиалармный пожар". А какие ещё уровни, интересно, бывают? Десятиалармный - это максимальный?😉
Перестаньте использовать CustomEvent