Size: a a a

2020 September 12

I

Ilya in Frontend UA
Или тебе нужно чтобы оно еще и тип инферило, с которым работает этот ивент?
источник

EO

Eugene Obrezkov in Frontend UA
там хардкод, не подходит
источник

EO

Eugene Obrezkov in Frontend UA
источник

EO

Eugene Obrezkov in Frontend UA
Ilya
Или тебе нужно чтобы оно еще и тип инферило, с которым работает этот ивент?
сейчас скрафчу пример для чего это всё
источник

EO

Eugene Obrezkov in Frontend UA
Eugene Obrezkov
сейчас скрафчу пример для чего это всё
источник

EO

Eugene Obrezkov in Frontend UA
вот как можно вертеть эмиттеры и делать типизированные события, так ещё чтобы и слушатели совпадали с тем, кто какой что умеет принимать\отдавать
источник

EO

Eugene Obrezkov in Frontend UA
а конкретный кейс, который я хочу решить - это https://github.com/ghaiklor/icecast-parser/blob/master/test/StreamReader.spec.ts#L13-L16
мне нужно чтобы тс заинферил что в метадате будет
источник
2020 September 13

Вт

Ві тя in Frontend UA
Может через ...args: [‘data’, type D] | [‘metadata’, M]
источник

Вт

Ві тя in Frontend UA
on(...args: ...)
источник

EO

Eugene Obrezkov in Frontend UA
Ві тя
Может через ...args: [‘data’, type D] | [‘metadata’, M]
export declare interface StreamReader extends Transform {
 on: Transform['on'] | ((event: 'metadata', listener: (metadata: Map<string, string>) => void) => this)
}
источник

EO

Eugene Obrezkov in Frontend UA
Type 'Transform' is not assignable to type 'this'.
         'this' could be instantiated with an arbitrary type which could be unrelated to 'Transform'.
источник

EO

Eugene Obrezkov in Frontend UA
это уже смишно становится
если скопировать все сигнатуры из оригинала и добавить в свой - проходит
источник

EO

Eugene Obrezkov in Frontend UA
это всё можно ужать к такому виду и оно работает НО тут ему не нравится this. В Transform[‘on’] listeners возвращают this и ему не нравится что это не тот this
источник

EO

Eugene Obrezkov in Frontend UA
пока игрался со всем этим пришел к такой прикольной практике, когда работать с эмиттерами
https://twitter.com/ghaiklor/status/1305085481701584896
источник

Вт

Ві тя in Frontend UA
Eugene Obrezkov
это всё можно ужать к такому виду и оно работает НО тут ему не нравится this. В Transform[‘on’] listeners возвращают this и ему не нравится что это не тот this
Замени this на трансформ?
источник

EO

Eugene Obrezkov in Frontend UA
И что тогда будет означать return this в моем классе?
источник

EO

Eugene Obrezkov in Frontend UA
Эт риторический вопрос, не лучший вариант
источник

Вт

Ві тя in Frontend UA
Eugene Obrezkov
И что тогда будет означать return this в моем классе?
будет значить что ты возвращаешь инстанс this, но менее специфичный
источник

Вт

Ві тя in Frontend UA
Мне просто интересно заработает ли так
источник

Вт

Ві тя in Frontend UA
Eugene Obrezkov
И что тогда будет означать return this в моем классе?
Или замени this на StreamReader

я имел ввиду что вместо this интерфейс написать, а какой - уже деталь :)
источник