Иван большущее спасибо, очень помог, понял где моя ошибка, пошел читать доку в этом направлении
ни разу не сталкивался с типом type T = [], тоже решил поразбираться. это тип массива, у которого никогда нет элементов. такая запись эквивалентна Array<never>, то есть вот вообще никогда нет элементов. и я хз, как этот тип можно использовать на практике. и как бы я ни старался, извлечь из [] | number[] что-то осмысленное не получается
вообще, тип never в TS — очень интересная штука, советую про него почитать внимательно. и сам почитаю