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

Всем привет! Есть следующая задача: необходимо написать интерфейсы для «билдера» который

должен работать примерно следующим образом (псевдокод) :
```
myBuilder
.withFirst.exactGenerator1(params)
.withFirst.exactGenerator2(params)
.withSecond.exactGeneratorN(params);
```

т.е. `withFirst`, `withSecond` и т.д. должны возвращать объект, а методы этого объекта должны возвращать this билдера.

Подскажите пожалуйста как правильно описать такой тип данных?

12 ответов

23 просмотра

this или typeof Generator

Ой, typeof это сам класс будет

Виталий- Автор вопроса

Не оч. понял. Можешь развернуть ответ? Поправил типы, получилось типа такого, но всё ещё не понятно как быть с this.

Бля вообще тебе фигню сказал, я думал билдер у тебя класс

Виталий- Автор вопроса

Пока задавал вопрос кажется сам нашёл ответ.

Я такую конструкцию обычно видел делают через класс, и получается просто методы класса возвращают this

Виталий- Автор вопроса

на данном этапе клас не имплементирован. Кроме того может быть несколько имплементаций данного интерфейса. Так что классы это «из другой оперы».

Ну тогда да, просто функции возвращают этот же интерфейс, все правильно

https://t.me/ts_cool/96349 Жаль, что в 4м ТС это перестало работать... Ишью им что ли создать...

Тут в догонку моему ишью подсказали решение без инлайн типов - должно подойти для вашего кейса https://github.com/microsoft/TypeScript/issues/43817#issuecomment-827746462

Виталий- Автор вопроса

Спасибо. Интересно.

Здорово когда подсказывает сам автор языка)

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта