TypeScript循环填充类数组属性时遇"Dereferencing null/undefined value"错误
问题解决:Dereferencing null/undefined value错误
你遇到的错误原因很明确:类中的grid属性仅声明了类型,但没有初始化,默认值为undefined。当你在构造函数中调用this.grid.push(row)时,实际上是在对undefined执行数组方法,所以触发了“解引用null/undefined值”的错误——这和row数组是否正确生成没有关系。
修复代码有两种常用方式:
方式一:属性声明时直接初始化
class Game { grid: number[][] = [] // 初始化空数组 constructor() { for (let i = 0; i < 20; i++) { let row: number[] = [] for (let j = 0; j < 10; j++) { row.push(0) } this.grid.push(row) } } }
方式二:构造函数内先初始化
class Game { grid: number[][] constructor() { this.grid = [] // 先将grid初始化为空数组 for (let i = 0; i < 20; i++) { let row: number[] = [] for (let j = 0; j < 10; j++) { row.push(0) } this.grid.push(row) } } }
两种方式都能确保this.grid在调用push方法前是一个有效的空数组,从而避免错误。
内容的提问来源于stack exchange,提问作者Serhii H
相关产品推荐
相关产品推荐

