Size: a a a

TypeScript — русскоговорящее сообщество

2020 March 17

MS

Max Syabro in TypeScript — русскоговорящее сообщество
хороший вопрос
источник

IK

Iliya Kobaliya in TypeScript — русскоговорящее сообщество
Max Syabro
хороший вопрос
Я укзаываю &  и все работает, но так же не должно быть.Слушатель должен получить  строку или массив строк, а не оба типа сразу .
источник

MS

Maxim Sosnov in TypeScript — русскоговорящее сообщество
ну выглядит логично, есть 2 типа сабскрайберов - одни ожидают строку, другие ожидают массив строк.  Они у тебя замиксованы в одну переменную. Поэтому чтобы без проверок типов сделать вызов, аргумент должен удовлетворять обоим вызовам сразу, вот он и говорит что хочешь вызывать - делай string & string[]
источник

IK

Iliya Kobaliya in TypeScript — русскоговорящее сообщество
Maxim Sosnov
ну выглядит логично, есть 2 типа сабскрайберов - одни ожидают строку, другие ожидают массив строк.  Они у тебя замиксованы в одну переменную. Поэтому чтобы без проверок типов сделать вызов, аргумент должен удовлетворять обоим вызовам сразу, вот он и говорит что хочешь вызывать - делай string & string[]
Ну почему не  |  ?  Ведь в одном субскрайбе может быть только один тип,а не 2 сразу.
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
Maxim Sosnov
ну выглядит логично, есть 2 типа сабскрайберов - одни ожидают строку, другие ожидают массив строк.  Они у тебя замиксованы в одну переменную. Поэтому чтобы без проверок типов сделать вызов, аргумент должен удовлетворять обоим вызовам сразу, вот он и говорит что хочешь вызывать - делай string & string[]
не, не выглядит
источник

MS

Maxim Sosnov in TypeScript — русскоговорящее сообщество
если data - string, то я не могу отдать data в CalcHistoryObserver
если data - string[], то я не могу отдать data в CalcResultObserver

если observer = CalcResultObserver | CalcHistoryObserver

то единственный возможный типизированный вызов observer это чтобы data был одновременно и string и string[]
вот тайпскрипт и вывел string & string[], исходя из кода
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
Maxim Sosnov
если data - string, то я не могу отдать data в CalcHistoryObserver
если data - string[], то я не могу отдать data в CalcResultObserver

если observer = CalcResultObserver | CalcHistoryObserver

то единственный возможный типизированный вызов observer это чтобы data был одновременно и string и string[]
вот тайпскрипт и вывел string & string[], исходя из кода
почему не вывести тип колбека исходя из типа?
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
у тебя какая-то прямолинейная логика которая логична с точки зрения странног разработчика компилятора
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
с точки зрения программисты разные типы колбеков это обыденная ситуация
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
хотя стоп
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
да, ты прав, туплю
источник

IK

Iliya Kobaliya in TypeScript — русскоговорящее сообщество
Тоесть мне указать   &  и так будет правильно?
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
смотри
источник

IK

Iliya Kobaliya in TypeScript — русскоговорящее сообщество
У меня в субскрайб не сможет попасть данные сразу и строки и массив строк?
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
что будет если в CalcResultObserver = (condition: string) => void; прилетит массив строк?
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
и строка во второй
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
у тебя код случаем не наебнется?
источник

IK

Iliya Kobaliya in TypeScript — русскоговорящее сообщество
Да
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
ну вот
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
тебе тс и говорит что хуйня какая-то
источник