из JSON.parse например, является элементом enumа? Набросал, но говорит boolean ты, а не predicate https://www.typescriptlang.org/play?#code/KYOwrgtgBAimCGAbAlgFwJ4BlgDdiKgG8AoKMqAVRAGsQB7AdxCgF4oAGAGlPM0dagBGbuSgBZYABNkkAQCYR5ABLIA5gAsBAZm4BfYsWQhUwAE4AzeAGNgUAJIBnOEjRZc+IjzIAKHEjDAAFxQYDT0TACUwX6IAVDIDrAIKBjYeIgA3MT6xFZ0IA6o8U7Jrmn4wY7OKW7pAr7+wBGsAHxQAPIARgBWwFaoAHQxAQ7e1WXuiBEDRlaxksCjw7bwieOpkxFZhuZQ3gnrtfje7BHNJKJ5BXSIwAOIdKreAOTowPAADpxQAHoA+j9nhFslB8A5bBdyFcHDc7g8ns96B9gN8AFR-VFA7JAA
Так вроде можно только если элементы энума строки Потому что с числами в values будут и имена этих энумов
Я кстати обычно видел функции которые через if, switch или объект мапали значение к конкретному энуму, что то никогда не задумывался ОК это или нет
ага, будут имена, и числа, но я решил это опустить, не хочется здоровенный свитч, enum еще несколько, и они меняются, можно добавить если value типа number и проверку на нахождение в массив кстати, если значения циферки
спасибо, в моем кейсе авто вывод типа все портит?
Предикаты нужно явно описывать на месте, обычные функции не кастуются к предикатам. И вообще, const foo: Foo = ... — плохая практика, не надо так
То, что ты написал вроде норм. Плохая практика const foo = ... as Foo
это суперплохая) а const foo: Foo — просто плохая)
Однажды ты, кажется, писал и что const Component: FC ... плохая практика. Лично мне кажется что это действительно ты странность какую-то пишешь, говоря что это плохая практика.
Да, писал. Почему странность?
Потому что лично мне это не кажется плохой практикой. Да и не только мне, кстати
да, не только, мы начинали спор насчет этого, в конце которого наши сообщения удалили =))
«Лично» и «кажется» — это хорошо, я не против. Аргументы?
А зачем каждому компоненту children? Который не все компоненты используют)
Меня это, кстати, особо не смущает. Но вполне можно без children тип написать. Вот единственный случай когда я не юзаю FC, это дженерики. В этом случае я да, пишу что-то вроде <T>(props: {t: T}) => React.ReactElement
тебя это не смущает ровно до тех пор, пока ты не проведёшь некоторое количество времени в дебаге “почему передаю ребёнка, а он не рендерится, в сигнатуре же написано, что ребёнок принимается"
Это уже немного из пальца высосано. За несколько лет ни разу еще именно такого случая не было. По компоненту или документации (комментариям, исходникам и т.д.) ведь и так будет понятно, рендерит ли он children. Хотя, как я сказал, можно свой FC сделать без children
- прочитать неправильную сигнатуру компонента - ошибиться - открыть документацию - найти - увидеть, что сигнатура неправильная - использовать компонент правильно или - прочитать правильную сигнатуру - использовать компонент правиьно
Разумеется да, второй вариант лучше, с этим не поспоришь
Обсуждают сегодня