Size: a a a

JavaScript.Ninja

2021 April 22

ТЛ

Тю Лень in JavaScript.Ninja
))
источник

G

Godfather in JavaScript.Ninja
Подскажите, а видео с мастерклассов, например CI/CD для frontend-инженера остаются в пожизненном доступе или на время курса?
источник

VS

Vlad 🦠 Starkovsky in JavaScript.Ninja
Вы это каждый раз спрашиваете будто впервые )
источник

G

Godfather in JavaScript.Ninja
Я ни разу не спрашивал и не одного курса/мастеркласс не проходил)
источник

DP

Dmytro Petunenko in JavaScript.Ninja
Да
источник

МА

Максим Ахмеров... in JavaScript.Ninja
всем привет, кто может подсказать, есть функция, которая принимает коллбэк, у этого коллбэка есть опциональный параметр, когда  я прокидываю 2 коллбэка, то ругается на второй, хотя тип второго коллбэка более узкий и должен проходить проверку типов
источник

M

Michael in JavaScript.Ninja
покажи ошибку
источник

МА

Максим Ахмеров... in JavaScript.Ninja
источник

МА

Максим Ахмеров... in JavaScript.Ninja
тип коллбэка 2 он более узкий и должен подходить под тип A, но нет
и вот тут  Type '{ text: string; id?: string | undefined; }' is not assignable to type '{ text: string; id: string; }'. он почему-то тип A(который шире) пытается подставить под тип коллбэка2 (более узкий), тут логично что это ошибка, но  как по мне, он должен делать наоборот, тип коллбека2 подставлять под тип А, ведь мы кидаем коллбэк2 в тип А
источник

AI

Arthur Irgashev in JavaScript.Ninja
нет, он всё правильно делает
> но  как по мне, он должен делать наоборот, тип коллбека2 подставлять под тип А

он так и поступает
источник

AI

Arthur Irgashev in JavaScript.Ninja
ты ему говоришь, что вот возьми функцию, которой обязательно нужно передать два поля, и просишь передать туда одно, возможно, вместе с вторым. как он должен реагировать ? Конечно начнёт орать о том, что функции может не хватать какого-то аргумента
источник

VK

Vladimir Klimov in JavaScript.Ninja
Вы передаёте значение более узкого типа туда, где ожидается более широкий
Потому и ошибка и это правильно)
источник

AI

Arthur Irgashev in JavaScript.Ninja
просто пиши в этом случае
const cb: A = ({text}) => {}
const cb2: A = ({text,id}) => {}
источник

AI

Arthur Irgashev in JavaScript.Ninja
или второй функции обязательно наличие id в объекте ?
источник

МА

Максим Ахмеров... in JavaScript.Ninja
если подумать, то это же норм, что мы передаем узкий тип в более широкий, вот если бы было наоборот, то была бы ошибка, он не не понимал возможные значения, а так он должен понимать, ведь мы передаем более узкий, значит все возможные значения он должен понимать
источник

VK

Vladimir Klimov in JavaScript.Ninja
Почему это норм?
источник

МА

Максим Ахмеров... in JavaScript.Ninja
потому что он узкий тип он понятен, тк мы сужает возможные типы, а более широкий нет, там будет ошибка
источник

M

Michael in JavaScript.Ninja
Так как foo ожидает строку или андефайнд в id, то она может вызвать коллбек без передачи айди. А кб2 ожидает айди. Вот тебе и пробелма
источник

МА

Максим Ахмеров... in JavaScript.Ninja
если сделать как ты написал, то проходит проверка(магия какая-то), хз поч так это работает
источник

AI

Arthur Irgashev in JavaScript.Ninja
я выше написал, как это работает )
источник