входные данные могут быть разными, и часто недостаточно в типе указать что у тебя тубя тут строка, может быть не строка) и часто когда люди пишут на тайпскрипте они забывают о внешнем мире, один фиг более глубокие проверки нужно делать, если есть какие то узкие места в приложение и нам нужна более высокая стабильность, как то реагировать на неправильные данные и т.д.
Здесь идёт речь об ответственности конкретного модуля. Те модули/функции которые работают с внешними данными никак не могут себе гарантировать, что им прийдёт то что надо. Они - прослойка, которая: принимает их, чекает на все что надо, цепляет им соответствующий тип(делает это хорошо, это его обязанность) и отправляет дальше по ветвлению, верные данные на обработку, неверные тоже в свою ветку. Дальше у нас есть модуль с логикой, у него нет обязанности работать с внешней системой, у него только обязанность правильно делать свое дело. Поэтому он не занимается проверками данных, данные уже проверены первым модулем и был выдан пруф - тип этих данных, передать что-то неверное не позволит компилятор, системные функции получения внешних данных не выдают таких пруфов - типов, в лучшем случае какой-то stream, получающий байты.
Обсуждают сегодня