Возвращение интерфейсов является уместным, поскольку (если разрешить звуковые практики) интерфейс будет связывать разные классы с аналогичной проблемной областью и гарантировать согласованный набор методов.
Однако разные типы заслуживают запаха-проверьте, потому что легче запомнить различные аргументы, которые вы можете использовать для получения данных, чем запомнить различные возвращаемые типы или необходимость ветвления собственного кода для размещения этих типов, даже если вы помните.
Отсутствующая альтернатива, которую здесь никто не предоставил, заключается в том, чтобы перегрузить оба элемента, возвращая список, даже если для id было бы глупо возвращать только список из одного элемента.Он отлично работает для jQuery, который является JavaScript-эквивалентом сильно перегруженной функции.
Согласованный возврат означает, что мне нужно только помнить, что ваш API делает для меня, а не то, что я должен для него делать.