```ts
export function cellAt(grid: number[][], row: number, column: number): number | undefined {
  if (!Array.isArray(grid) || !grid.every(row => Array.isArray(row))) {
    throw new Error('Invalid grid');
  }
  if (row < 0 || row >= grid.length || column < 0 || column >= grid[row].length) {
    return undefined;
  }
  return grid[row][column];
}

export function diagOf(grid: number[][]): number[] {
  const result: number[] = [];
  for (let i = 0; i < grid.length; i++) {
    result.push(cellAt(grid, i, i));
  }
  return result;
}
```