Поскольку вы хотите вернуть массив (Row []) ([] указывает, что вы хотите вернуть массив этого объекта), но вы возвращаете только один объект, вам необходимо настроить к этому. Либо так (где вы возвращаете только строку):
static generateRow(serverResponds: ServerRespond[]): Row { // The [] are removed so you only return a single object
const priceABC = (serverResponds[0].top_ask.price + serverResponds[0].top_bid.price) / 2;
const priceDEF = (serverResponds[1].top_ask.price + serverResponds[1].top_ask.price) / 2;
const ratio = priceABC / priceDEF;
const upperBound = 1 + 0.05;
const lowerBound = 1 + 0.05;
return {
price_abc: priceABC,
price_def: priceDEF,
ratio,
timestamp: serverResponds[0].timestamp > serverResponds[1].timestamp ?
serverResponds[0].timestamp : serverResponds[1].timestamp,
upper_bound: upperBound,
lower_bound: lowerBound,
trigger_alert: (ratio > upperBound || ratio < lowerBound) ? ratio : undefined,
};
}
Либо так (где вы возвращаете только массив строк):
static generateRow(serverResponds: ServerRespond[]): Row[] {
const priceABC = (serverResponds[0].top_ask.price + serverResponds[0].top_bid.price) / 2;
const priceDEF = (serverResponds[1].top_ask.price + serverResponds[1].top_ask.price) / 2;
const ratio = priceABC / priceDEF;
const upperBound = 1 + 0.05;
const lowerBound = 1 + 0.05;
return [{ // Here is the array wrapper around so you return an array with one entry
price_abc: priceABC,
price_def: priceDEF,
ratio,
timestamp: serverResponds[0].timestamp > serverResponds[1].timestamp ?
serverResponds[0].timestamp : serverResponds[1].timestamp,
upper_bound: upperBound,
lower_bound: lowerBound,
trigger_alert: (ratio > upperBound || ratio < lowerBound) ? ratio : undefined,
}]; // And here with ] you close the array
}