calcAmount
по SOLID должен быть методом у объекта с этими ключами.
Т.е. допустим с сервера пришла
const data = [{"id": 1, "a": 99, "b": 100}, {"id": 2, "a": 1 "b": 2}];
Перед тем как с ней что-то делать, ты преобразуешь её в типизированную структуру:
interface Calculable {
calcAmount(): number;
}
class CalculableAB implements Calculable {
constructor(obj) {
Object.assign(this, obj);
}
calcAmount() {
const {a, b} = this;
return a + b;
}
}
struct = data.map(obj => new CalculableAB(obj));
Ну и дальше при работе с любым
Calculable
ты просто вызываешь у него
calcAmount()
. Как оно там реализовано - тебя не волнует.
Это конечно хардкорное ООП и в большинстве мелких случаев такого не надо, но суть думаю ясна.)