You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 10:47:45