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

А поч не сделают чтобы при указании интерфейса в defineProps

- в параметры указывалось тоже самое, что в withDefaults?)
Типо
const props = defineProps<{test: string}>({test: "123"});

27 ответов

17 просмотров

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

Иван-М Автор вопроса
Artyom Tuchkov
да, так было бы удобнее, но уже не получится, пото...

Но в случае с TS сейчас там вообще нельзя указать параметры при указании интерфейса. То есть кейс свободен.

Artyom Tuchkov
да, так было бы удобнее, но уже не получится, пото...

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

Artyom Tuchkov
имхо, много боли идет от того, что вью зачем-то до...

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

Grigorii K. Shartsev
но иначе на TS и на JS будет разная работа, и не б...

просто не нужно выводить вообще рантайм типы, как это не делает ни одна другая либа либо можно это сделать отдельный либой, как это сделано в реакте

Artyom Tuchkov
имхо, много боли идет от того, что вью зачем-то до...

вью все еще пытается дружить с JS first решениями :D реакт у которого как раз и был изначально валидатор пропсов уже сто лет как забыл что такой плагин вообще когда-то существовал :D

Иван-М Автор вопроса
Denis Chernov
вью все еще пытается дружить с JS first решениями ...

и это его огромный плюс. Меня бы тут не было, если бы вью требовал компиляцию)

Denis Chernov
вью все еще пытается дружить с JS first решениями ...

это да, вот как раз можно было бы сделать это отдельной маленькой либой и если кому-нибудь нужна рантайм валидация, то пусть ставят и радуются

Иван М
Но в случае с TS сейчас там вообще нельзя указать ...

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

Иван-М Автор вопроса
Artyom Tuchkov
технически - да, если опираться на одновременное у...

Есть еще идейка: вместо описания withDefault - писать полноценный объект { test: {default: "123"} }, но type не указывать, т.к. type можно указать в дженерике.

Иван М
Есть еще идейка: вместо описания withDefault - пис...

ну это по сути то же дублирование, что у нас сейчас есть с withDefaults

Иван-М Автор вопроса
Artyom Tuchkov
ну это по сути то же дублирование, что у нас сейча...

нее, сейчас так тоже можно, но обязательно надо указать type и нельзя указать дженерик

Иван-М Автор вопроса
Иван М
нее, сейчас так тоже можно, но обязательно надо ук...

т.е. сейчас можно вот так: const props = defineProps({test: {type: String, default: "123"}}) А я предлагаю для TS упростить так: const props = defineProps<{test?: string}>({test: {default: "123"}})

Artyom Tuchkov
ну это по сути то же дублирование, что у нас сейча...

цель сделать так, чтобы это было максимально интуитивно и просто мне больше всего нравится вариант с обычной функцией, но это не получится нормально организовать внутри script setup export default defineComponent((p: SomeInterface) => { const props = withDefaults(p, { someProperty: ‘default value’ }); }); тут даже можно отказаться от функций для непримитивов в дефолтных значениях

Иван-М Автор вопроса
Иван М
т.е. сейчас можно вот так: const props = definePro...

хотя тогда и required отменяется параметр

Иван М
т.е. сейчас можно вот так: const props = definePro...

но твой упрощенный вариант очень сильно похож на const props = withDefaults(defineProps<SomeInterface>(), { test: ‘123’ }) и в нем даже нет вложенности в дефолтных пропсах

Иван-М Автор вопроса
Иван-М Автор вопроса
Artyom Tuchkov
а зачем нам валидатор?)

ну так мой вариант и валидатор учитывает

Иван М
ну так мой вариант и валидатор учитывает

да, но нужен ли он, когда у тебя все типы объявлены в TS и чекаются при сборке?

Иван-М Автор вопроса
Иван-М Автор вопроса
Artyom Tuchkov
дженерики?)

а вдруг тип с сервера приходит

Иван М
а вдруг тип с сервера приходит

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

Иван-М Автор вопроса
Artyom Tuchkov
рантайм-валидация все равно работает только в деве...

в ней есть смысл, если у нас есть голые .js файлы, в которых нет TS. Они могут встраиваться в проект на TS, например.

Иван М
в ней есть смысл, если у нас есть голые .js файлы,...

но ведь если у нас нет TS, то мы просто можем использовать текущую сигнатуру, где все описывается прям в объекте, включая тип а если есть TS, то как раз уже можно спокойно откинуть все, кроме дефолтных значений собственно, сейчас так оно и сделано

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
как быть с принтером? такой подход прокатит?
zamtmn
12
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Я не понимаю, это троллинг или что? Швабрика поддерживают, который буквально пишет на ассемблере взаимодействия с винапи. Я это ещё написал загрузчик и хоть что-то изучаю в о...
Shadow Akira
6
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Карта сайта