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

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

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

13 ответов

10 просмотров
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

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
Карта сайта