Open chestozo opened 9 years ago
Да, обсуждалось. Честно пытался найти таск и не нашел Тогда я был против, потому что у меня есть модели с кучей необязательных параметров. Надо придумать синтаксис для обязательности. Я готов это сделать, мне бы тоже пригодилось :)
Нашел! #452
Предлагаю =
. Его хорошо видно, он отличается от других и символизирует "присвоение", т.е. наличие значение
ns.Model.define('ququ', {
params: {
'id=': null
}
});
Если я правильно помню, параметры у нас разбираются в объект, поэтому там можно сделать флаг
=
означает только "опциональные параметры" в роутере https://yandex-ui.github.io/noscript/single-page/#index_md_14
Мои варианты:
params: {
'!id': null, // аналогия из https://developers.google.com/closure/compiler/docs/js-for-compiler?hl=ru
'id': ns.paramType.required // аналогия из http://facebook.github.io/react/docs/reusable-components.html#prop-validation
}
А ещё вариант по дефолту делать параметры обязательными, а для опциональных придумать обозначение.
Мне !
принципиально не нравится, потому что его плохо видно, он может слится с l
или i
А почему бы необязательным параметрам не задать дефолтное значение ''
? А все остальные параметры сделать обязательными?
А почему бы необязательным параметрам не задать дефолтное значение ''? А все остальные параметры сделать обязательными?
Раньше было что-то такое для обозначения обязательности:
params: {
p1: true, // обязательный
p2: false // необязательный
}
оно чего-то не прижилось.
Плюс начнётся всякое '' == 0
и т.п.
А чем не нравится, к примеру, 'id': ns.paramType.required
?
Можно будет накрутить валидаторы параметров потом, к примеру.
Мне нравится идея @alexeyten. Просто и понятно.
Т.е. поумолчанию параметры обязательны, а для опциональных указываем p: ''
?
Мне тоже ок.
@edoroshenko ?
Не обязательно ''
. Любое разумное значение. Может 0
, может 'default'
и т.п.
Ну оно и сейчас так работает, да. Просто сейчас остальные параметры опциональные, а хочется обязательные.
+1 к @alexeyten
Итого:
Если параметр в декларации null
- обязательное поле
Любое другое значение - необязательное
Все правильно?
да
Итого: Если параметр в декларации
null
- обязательное поле Любое другое значение - необязательное Все правильно?
Т.е. прямо value === null
будем проверять?
Да
Получается, параметров для ключа не хватает, но ключ строится и вообще всё хорошо. Мне кажется, где-то это обсуждалось уже, но я не помню где и какой итог.
Всем кажется, что это ок? /cc @i2r