По сути из-за того что в typescript структурная типизация, то из коробки нет возможности сделать что-то подобное в виде Exact как во flow, по крайней мере на сколько я знаю ещё не завезли, хотя ишьюс такой встречал. Я как-то тоже пытался сделать подобное через дженерики или ещё как-нибудь, но всегда приходил к одному - пока это не появится нативно, решать это лишь пустая трата времени, так как по сути ты на пустом месте усложняешь код и создаёшь себе проблемы) так что действительно тебе это нужно?)
пока ток на стадии начала изучения, мб пока и правда не стоит над этим париться
Кстати, вот вроде один из https://github.com/microsoft/TypeScript/issues/12936 аж с 2016 года открыт)
пока изучу то что скидывали выше, как доберусь до этого ишью - гляну, но пока чет как-то супер много инфы и далеко не все понятно
В последней версии typescript завезли оператор satisfies https://devblogs.microsoft.com/typescript/announcing-typescript-4-9-beta/#the-satisfies-operator но оно кажется про другое, сам ещё не успел им воспользоваться
@nikita_stenin сможешь вот эту маленькую задачку решить, чтоб работало корректно? был бы рад, если бы ты показал, как это корректно делается
А в чем задача? Почему когда передаёшь объект, нет ошибки?
да, нужно генерить ошибку
точнее не объект, а переменную в виде объекта. Ес передавать сам объект, то ошибка норм генерится https://t.me/ts_cool/253841
Ну с точки зрения ts тут все корректно в целом) если тебе не помогает вот это https://fettblog.eu/typescript-match-the-exact-object-shape/ то я не знаю ответа.
Ну если формально, то да результат достигнут, но по факту данный пример не совсем подходящий) Так как в реальности ты скорее хочешь наоборот иметь общую функцию вывода отчета, которая умеет работать с разными сущностями. Банальный пример: interface Dog extends Printable {} interface Car extends Printable {} В этом случае ты вряд ли захочешь перечислять все возможные варианты, а просто у аргумента укажешь тип Printable
Обсуждают сегодня