Комментарии 12
Я неопытный программист на TS, может чего-то упускаю, но разве не проще вторую задачу решить так:
ApiResponse = SuccessfulApiResponse | FailedApiResponse | ...
SuccessfulApiResponse = {scenarioSuccess: true, response: string, error: null}
FailedApiResponse = {scenarioSuccess: false, response: null, error: string}
Т.е. мы просто перечисляем валидные комбинации параметров, а дальше TS не даст сконструировать неверную комбинацию. Да, можно потом "отредактировать" ApiResponse и ввести его в невалидный режим, но это надо постараться ещё сделать - от случайных ошибок защитит.
Это же каким бараном надо быть чтобы, для того, чтобы "не пороть ерунду" нужен целый тайпскрипт !?
Типизация ничего не дает, кроме подсказок IDE, зато накорню вырубает "точку роста" в проекте, никакого творческого развития и поиска в проекте на тайпскрипт быть не может, и он тихо дохнет под вопли эйчаров и растущие в стратосферу зарплатные вилки не спасают.
Вывод простой: если ты не Фейсбук или гугл забудь про типизацию и тайпскрипт и SOLID и вспомни про KISS
@RiverFlow независимо от языка программирования надо не забываться и общаться корректно
Поддерживаю за турескипт, и не согласен за solid. Хотябы буква L там вполне нужная вещь
@BerAllv большое спасибо, ознакомлюсь.
По поводу класса в бандле - ну я же планирую делать new ScenarioSuccessResponse, так что пусть остаётся)
@BerAllv воу, опубликовались практически в одно и то же время.
Весьма интересный матерьял, спасибо.
Не нашел возможности оставить коммент в под статьёй, так что пишу здесь:
It leads to more flexibility but at the same time leaves a room for specific bugs - думаю можно было бы привести пример такого бага
Использование приватных свойств класса для усиления типизации в typescript