[ts]
Argument of type '(sum: number, wallet: IConvertedRate) => number' is not assignable to parameter of type '(previousValue: number, currentValue: "" | { convertedRate: number; }, currentIndex: number, array: ("" | { convertedRate: number; })[]) => number'.
Types of parameters 'wallet' and 'currentValue' are incompatible.
Type '"" | { convertedRate: number; }' is not assignable to type 'IConvertedRate'.
Type '""' is not assignable to type 'IConvertedRate'. [2345]
Не уверен, как устранить эти ошибки Typescript
logs
Вот как выглядит wallets
:
[
{ currency: 'USD', amount: 100 },
{ currency: 'EUR', amount: 500 }
{ currency: 'CHF', amount: 10000 }
]
Это то, что convertedRates
выглядит так:
[
{ convertedRate: 100 },
{ convertedRate: 437,44 }
{ convertedRate: 9980.9 }
]
Данный код работает и возвращает правильное общее значение 10518.34
, но не может избавиться от ошибки при наборе текста.
Код
interface IConvertedRate {
convertedRate: number;
}
calculateTotalValue(wallets: IWallet[]) {
const { assets } = this.props;
const convertedRates = wallets.map((wallet) => {
const conversion = assets.filter((asset) => asset.currency === wallet.currency)[0];
if (conversion) {
return {
convertedRate: roundFloat(wallet.amount * conversion.rate, 2)
};
}
return '';
});
const total = convertedRates.reduce(function(sum: number, wallet: IConvertedRate) {
return sum + wallet.convertedRate;
}, 0);
console.log('total', total);
return total.toString();
}