Вы пропустили определение начального значения и типа начального значения. Тип начального значения будет определять тип возврата функции reduce
.
Я предлагаю определить начальное значение как BalanceDTO, а начальные значения равны нулю
const balance = transactions.reduce((accumulator, transaction) => {
accumulator[transaction.type] += transaction.value;
return accumulator;
}, {
income: 0,
outcome: 0,
} as BalanceDTO); // initialValue as a BalanceDTO
Теперь, balance
является BalanceDTO