T | object, либо объект пустой, либо содержит все перечисленные пропсы и компилятор всегда ругается что поле object не содержит искомое свойство?
Либо без юнионов, либо discriminated unions. Пока другие практики не прижились 🤷♂
type FullOrEmpty<T> = T | { [K in any] : never };
вроде вполне норм вариант который я скинул)
Я не в курсе. А {[K in any] : never} чем-то отличается от типа {}? Ну, и если известно, что T - объект, лучше это явно указать в дженерике: T extends {}
в {} можно засунуть что угодно
собсна вот
Похоже на правду... спасибо
👍
Эх, мало того, что юнион, так ещё и всякие Required, опциональные поля... Поди потом разберись, как эти типы инферятся о_О Думаю, лучше так не делать)) А если потом ещё сверху extends напихать... 😂
Когда типизация становится видом спорта?
По-моему те, кто не использует conditional типы - будут иметь фору в этом виде спорта))
да что ты пристал к кондишнлам то))
Не, когда ты разжевал компилятору ради дикой скорости работы и безошибочности, разворачивания циклов и так далее... но я на такое не подписывался :-D
Спасибо, нормальный вариант
А если сделать T | Readonly<{}> ?
Как такое сделать(фон)?
Background image плагин в Jetbrains'овых IDE
А в vs code есть такое?
Не знаю Background image vs code в гугле в помощь
извращение еще то
Плагинов море
Можно примерчик ? :D
Обсуждают сегодня