У меня есть два простых типа данных:
type IData = {
percent: string;
exchange: string;
};
type IRow = {
price: number;
exchange: string;
};
Я не понимаю, почему машинопись выдает ошибки здесь, если я использую их обоих:
const sumSame = (
assets: IData[] | IRow[],
sumBy: string,
sumWhat: string
) => {
const mapWithUniqCoins = assets.reduce((accMap, el: IData | IRow) => {
if (accMap.has(el[sumBy])) {
accMap.set(el[sumBy], {
...accMap.get(el[sumBy]),
[sumWhat]: accMap.get(el[sumBy])[sumWhat] =
+accMap.get(el[sumBy])[sumWhat] + parseFloat(el[sumWhat])
});
} else {
accMap.set(el[sumBy], el);
}
return accMap;
}, new Map());
return [...mapWithUniqCoins.values()];
};
Но это не приводит к ошибкам, когда я объединяю два типа в одну фигуру:
type Shape = IData | IRow;
Почему это случилось?
https://codesandbox.io/s/16vzvqqv3 (Проверьте Errors.ts и NoErrors.ts)