https://github.com/microsoft/TypeScript/issues/43817#issuecomment-827746462 (сорри, что без классов - не использую классы)
То есть нужно использовать билдер?
Пока что мы видим только set* методы. Всё зависит от того, как это будет использоваться (get*? doSomething*? ...)
Что значит собирать объект на основе интерфейса?
походу, интерфейс там только на сеттеры... собрали объект. И чё дальше?)))
Методов не будет Мне нужно в итоге получить объект для запроса У меня есть интерфейс и я хочу сделать fluent interface функционал для сборки
А усилием воли убрать слово interface и написать class?
?
сорри, не заметил, что все поля public. То есть, вообще никакого контроля: хоть сеттером, хоть через прямое присваивание... ещё меньше смысла использовать классы
Сейчас что бы делать запрос нужно ручками объект создавать Я хочу fluent interface сделать
Я же говорю Мне нужно делать объекты Что бы потом эти поля испоьлзовались для запроса
Ты можешь распарсить свой интерфейс и сгенерировать код билдера
Я выше пример билдера скинул. Там на уровне компиляции проверится, что во время build() все необходимые поля инициализированы. Более того, до вызова build() - ни одно поле не будет доступно как геттер
Вопрос в том какой паттерн использовать билдер или вот то, что отправил (не знаю как такое называется)
Код увидел, это билдер Я сейчас хочу понять какой паттерн использовать
давайте начнём с того, что у вас поля опшенал - а значит и пустой объект {} - тоже валидный объект этого интерфейса. Задайтесь сначала вопросом - считается ли объект валидным в вашем кейсе, если определённые поля не заданы
Да, считается
Вы хотите, чтоб код класса авто-генерился из интерфейса? Или ручками под каждый интерфейс писать?
Ручками. Не проблема
Если есть способ сделать флюент, то и авто будет супер
Тогда ещё раз взгляните на пример. Можно любые методы в билдер добавить аналогично (если вы и правда под каждый интерфейс свой билдер собираетесь писать)
Вопрос в другом состоит Какой паттерн использовать для задачи
Какая разница? После 10 лет опыта в программировании - неважно, как оно называется, или как ваше решение кто-то назовёт
Обычный литерал объектный используй
Обсуждают сегодня