В Angular кажется, что многие операции могут получить прямое или наблюдаемое значение для этого значения.Я хочу реализовать функцию, которая делает то же самое.Существуют ли подводные камни для простой реализации проверки и приведения: if(typeof input.subscribe != 'function') input = of(input)
?
Кажется, что популярный подход к «перегрузке» состоит в добавлении объекта параметров, посредством которого пользователь может указатьтип ввода.Другой подход, который я видел, заключается в том, чтобы просто принять объект с необязательными параметрами:
function x(input){
if (input.observable) input = input.observable;
if (input.raw) input = input.raw
}
Конечно, я мог бы просто разбить его на обычную функцию и асинхронную функцию или потребовать, чтобы вызывающая сторона предоставила наблюдаемую.Однако мне нравится мой подход - я просто хочу знать, есть ли подводные камни, которых я не вижу.