Я пытаюсь вам донести, что В прикладных задачах не стоит вопроса строго определения типа оторванного от контекста.Скорее тебе надо обычно проверить поведение. В крайнем случае примитивность значения, или проверить на null.
У тебя не встанет задачи проверить что typeof value === 'function' , потому что на самом деле, ты хочешь проверить, может ли value быть вызванным, например.
Или наоборот, ты зочешь провериить передан ли тебе конструктор. А значит, если тебе передатут стрелочную фкнцию, или функцию-метод - они тебе не подходят, несмотря на то, что typeof у них function