interface Context { itemsCount: number } interface Position { x: number y: number } function memoryGap(): number { return memorySide() + memorySpace() } function memorySide(): number { return 50 } function memorySpace(): number { return 20 } function memoryItemPositions(c: Context): Position[] { var pos: Position[] = [] for (var i = 0; i < c.itemsCount; i++) { let row = Math.floor(i / 4) let x = memoryGap() + (i - row * 4) * memoryGap() let y = memoryGap() + row * memoryGap() // @ts-ignore pos.push(memoryCreatePosition(x, y)) } return pos }