169 похожих чатов

Ребят, при передаче объектов в качестве параметра допустимо указывать лишние

ключи. Как сделать так, чтобы при вызове переменной с лишними ключами функция ругалась? (она ругается на лишние ключи, если передавать напрямую объект)

13 ответов

21 просмотр
Nikita-Logunyonok Автор вопроса

то же самое поведение https://codesandbox.io/s/elegant-chatterjee-1k78tj?file=/src/App.tsx

По сути из-за того что в typescript структурная типизация, то из коробки нет возможности сделать что-то подобное в виде Exact как во flow, по крайней мере на сколько я знаю ещё не завезли, хотя ишьюс такой встречал. Я как-то тоже пытался сделать подобное через дженерики или ещё как-нибудь, но всегда приходил к одному - пока это не появится нативно, решать это лишь пустая трата времени, так как по сути ты на пустом месте усложняешь код и создаёшь себе проблемы) так что действительно тебе это нужно?)

Nikita-Logunyonok Автор вопроса
Nikita Stenin
По сути из-за того что в typescript структурная ти...

пока ток на стадии начала изучения, мб пока и правда не стоит над этим париться

Nikita Logunyonok
пока ток на стадии начала изучения, мб пока и прав...

Кстати, вот вроде один из https://github.com/microsoft/TypeScript/issues/12936 аж с 2016 года открыт)

Nikita-Logunyonok Автор вопроса
Nikita Stenin
Кстати, вот вроде один из https://github.com/micro...

пока изучу то что скидывали выше, как доберусь до этого ишью - гляну, но пока чет как-то супер много инфы и далеко не все понятно

Nikita Logunyonok
пока ток на стадии начала изучения, мб пока и прав...

В последней версии typescript завезли оператор satisfies https://devblogs.microsoft.com/typescript/announcing-typescript-4-9-beta/#the-satisfies-operator но оно кажется про другое, сам ещё не успел им воспользоваться

Nikita-Logunyonok Автор вопроса
Nikita Logunyonok
screenshot то же самое поведение https://codesandbox.io/s/ele...

@nikita_stenin сможешь вот эту маленькую задачку решить, чтоб работало корректно? был бы рад, если бы ты показал, как это корректно делается

Nikita Logunyonok
@nikita_stenin сможешь вот эту маленькую задачку р...

А в чем задача? Почему когда передаёшь объект, нет ошибки?

Nikita-Logunyonok Автор вопроса

точнее не объект, а переменную в виде объекта. Ес передавать сам объект, то ошибка норм генерится https://t.me/ts_cool/253841

Nikita Logunyonok
точнее не объект, а переменную в виде объекта. Ес ...

Ну с точки зрения ts тут все корректно в целом) если тебе не помогает вот это https://fettblog.eu/typescript-match-the-exact-object-shape/ то я не знаю ответа.

Nikita-Logunyonok Автор вопроса

а, кст да, можно же просто указать тип для объектов, чтоб тоже ошибку выкидывал

Nikita Logunyonok
screenshot а, кст да, можно же просто указать тип для объекто...

Ну если формально, то да результат достигнут, но по факту данный пример не совсем подходящий) Так как в реальности ты скорее хочешь наоборот иметь общую функцию вывода отчета, которая умеет работать с разными сущностями. Банальный пример: interface Dog extends Printable {} interface Car extends Printable {} В этом случае ты вряд ли захочешь перечислять все возможные варианты, а просто у аргумента укажешь тип Printable

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Карта сайта