проблема при применении функции редукции к пустому массиву - PullRequest
0 голосов
/ 09 июня 2018

Компилятор машинописного текста не помечает никаких ошибок следующим кодом.

const numbers: number[] = [];
const sum: number = numbers.reduce((a, num) => (a + num));

Однако при выполнении транспонированного кода nodejs возвращает следующее исключение

TypeError: Reduce of empty array with no initial value

Я думаю, что этоможет вызвать много ошибок времени выполнения, и, возможно, машинопись должна предложить мне проверить, не является ли массив пустым, прежде чем использовать функцию Reduce.

const numbers: number[] = [];
const sum: number = numbers.length > 0 ? numbers.reduce((a, num) => (a + num)) : 0;

Стоит ли сообщать об этом как о проблеме?

1 Ответ

0 голосов
/ 10 июня 2018

Я сомневаюсь, что кто-нибудь изменит это.Компилятор Typescript интересуется только тем, правильно ли вы создали массив.

И это вы сделали.

Java, например, делает то же самое.Пока переменная создается правильно, программист сам отвечает за то, есть ли у нее контент или нет.

...