тяжело поддерживать?
а как вы без типов сделаете инверсию?
Просто не буду завязывать высокоуровневые абстракции на низкоуровневые реализации?
это работает для хелоуверд, и то когда работаешь 1
С телефона тяжело примеры писать. Пишу например модуль. Он например зависит от репы. Нужен метод findByName( name: string):DogModel. В модуле я положил интерфейс для этой репы. Потом на уровне инфраструктура я реализую этот интерфейс через реализацию в бд. Потом подсуну модулю реализацию.
Так же как обычно, только без типов )
Не надо мне обьяснять как работает Ди Это можно и в джс сделать просто без ключевого слова интерфейс
Что мешает это сделать без явного указания интерфейса? Динамическая типизация на то так и называется, что не требует явного указания типа Для удобства можно написать тест, который проверяет соответствие интерфейсу и будет даже лучше, чем с тс
Например На 5 реализаций написать кучу тестов? А есть в реализациях тяжёлый инфраструктурный код? Нет бы просто описать контракт парой строчек и пусть там тс тепе его проверяет каждый раз..
И держать всё в голове? Мы не роботы, сори.
Если у вас в классах по 20 паблик методов то это не моя проблема, а одно название метода можно запомнить или скопировать
Запомнить, скопировать. У меня в голове сразу всплывают большие проекты на тысячи файлов.
Обсуждают сегодня