TypeScript中通过索引获取Game类数组推入元素的值无效问题
解决Game类中fontArray索引访问失效的问题
先看你提供的Game类代码,fontArray在构造函数里已经push了"large",但你说通过索引访问这个元素失效,我帮你梳理几个最可能的原因和解决办法:
没有正确创建类实例:如果只是导入了Game类,但没通过
new Game()创建实例,构造函数里的push操作根本没执行,fontArray还是空数组。正确的用法应该是:const game = new Game(); console.log(game.fontArray[0]); // 这里应该能输出"large"错误访问了类而非实例:
fontArray是实例属性,不是静态属性。如果你的fontSizeHandle逻辑里直接写了Game.fontArray[0],那肯定拿不到——必须通过具体的Game实例来访问,比如gameInstance.fontArray[0]。数组被意外覆盖:检查
fontSizeHandle或者其他代码里有没有重新给fontArray赋值(比如this.fontArray = []),如果把原来的数组替换成空数组了,自然索引访问不到元素。时序问题:如果
fontSizeHandle在Game实例初始化完成前就运行了,那构造函数里的push还没执行。比如在前端组件的生命周期钩子过早的阶段调用,得确保实例已经创建完成。
给你一个结合fontSizeHandle的正确示例:
// 假设你的处理函数是这样的 function fontSizeHandle(gameInstance: Game) { const targetFont = gameInstance.fontArray[0]; if (targetFont === "large") { // 这里写你的处理逻辑,比如调整字体大小 gameInstance.fontsize = "5vw"; } } // 创建实例后再调用处理函数 const myGame = new Game(); fontSizeHandle(myGame);
如果还是解决不了,建议把fontSizeHandle的完整代码贴出来,这样能更精准定位问题。
内容的提问来源于stack exchange,提问作者bakar
相关产品推荐
相关产品推荐

