// Estoy usando Typescript 4.4.4 y node.js 12 LTS para este proyecto, la clase Matrix me está dando un problema durante la compilación con resumen, no estoy seguro de por qué, todo me parece bien
Error:/src/Matrix.ts(29,9): error semántico TS2532: el objeto posiblemente sea 'indefinido'.
El código fuente:
export class Matrix { rows: number; cols: number; data: number[][]; constructor(rows: number, cols: number) { this.rows = rows; this.cols = cols; this.data = Array(this.rows) .fill(1) .map(() => Array(this.cols).fill(0)); } copy() { const m = new Matrix(this.rows, this.cols); for (let i = 0; i < this.rows; i++) { for (let j = 0; j < this.cols; j++) { m.data[i][j] = this.data[i][j]; } } return m; } ... }esta es la linea con el error:
m.data[i][j] = this.data[i][j];y:
m.data[i][j] = this?.data?.[i]?.[j] as number;parecía deshacerse del subrayado rojo en el lado derecho, pero no funciona en el lado izquierdo
usar ! porque i'm sure, typescript, you don't need to check undefined
m.data[i]![j]! = this.data[i]![j]!; tiene esta advertencia debido a la configuración de noUncheckedIndexedAccess tsconfig : https://www.typescriptlang.org/tsconfig#noUncheckedIndexedAccess