Я полагаю, что это потому, что тип для []
выводится как never[]
, который является типом для массива, который ДОЛЖЕН быть пустым. Вы можете использовать приведение типа для решения этой проблемы:
['a', 'b', 'c'].reduce((accumulator, value) => accumulator.concat(value), [] as string[]);
Обычно это не будет большой проблемой, поскольку TypeScript хорошо справляется с задачей определения лучшего типа для назначения пустому массиву на основе того, что вы с ним делаете. Однако, поскольку ваш пример «глупый», как вы говорите, TypeScript не может сделать никаких выводов и оставляет тип как never[]
.