{
someAbility?: boolean;
}
type Y = {
someAbility?: undefined
}
type Props = X | Y;
export const Component = ({ someAbility }: Props) => {...}
Прикол в том, что пилю компонент, где X это пропсы для расширенного варианта компонента, а Y это пропсы для базового.
Если указать какую-либо пропсу лишь в одном из типов, тогда тс будет ругаться, мол, в типе Props такого нет, но подобных взаимоисключащих пропсов штук 6, что не есть хорошо, если их дублировать.
Как можно такого избежать?
someAbility?: undefined Тут опциональный пропс, он и так undefined
Подсказать какой именно у тебя тип тайпскрипту можно через проверку вида If ('propName' in props) ...
Если убрать опциональность, то он будет обязательным, соответственно, его придется указывать, какой бы тип у него ни был
Так если он типа undefined, зачем он тут вообще?
Немного похоже на костыль 🤔
Это не костыль, это выведение типов
Обсуждают сегодня