HarmonyOS鸿蒙Next中ArkTS的代码这个数组编译出问题,提示错误如下

HarmonyOS鸿蒙Next中ArkTS的代码这个数组编译出问题,提示错误如下

编译错误提示如下

  1. ERROR: ArkTS:ERROR File: D:/DevEco-app-code/wuziqi/entry/src/main/ets/pages/Index.ets:66:24

    • Array literals must contain elements of only inferrable types (arkts-no-noninferrable-arr-literals)
  2. ERROR: ArkTS:ERROR File: D:/DevEco-app-code/wuziqi/entry/src/main/ets/pages/Index.ets:67:7

    • Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)
  3. ERROR: ArkTS:ERROR File: D:/DevEco-app-code/wuziqi/entry/src/main/ets/pages/Index.ets:68:7

    • Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)
  4. ERROR: ArkTS:ERROR File: D:/DevEco-app-code/wuziqi/entry/src/main/ets/pages/Index.ets:69:7

    • Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)
  5. ERROR: ArkTS:ERROR File: D:/DevEco-app-code/wuziqi/entry/src/main/ets/pages/Index.ets:70:7

    • Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)
  6. ERROR: ArkTS:ERROR File: D:/DevEco-app-code/wuziqi/entry/src/main/ets/pages/Index.ets:73:16

    • Destructuring variable declarations are not supported (arkts-no-destruct-decls)

请帮忙更正错误,谢谢。


更多关于HarmonyOS鸿蒙Next中ArkTS的代码这个数组编译出问题,提示错误如下的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

如有帮助给个采纳

// 首先在文件顶部或类内部定义一个接口
interface Direction {
  dr: number;
  dc: number;
}

// 然后修改 checkWin 方法
private checkWin(row: number, col: number): boolean {
  // 定义方向数组
  const directions: Direction[] = [
    { dr: 0, dc: 1 }, // 横向
    { dr: 1, dc: 0 }, // 竖向
    { dr: 1, dc: 1 }, // 正对角线
    { dr: 1, dc: -1 } // 反对角线
  ];

  // 不使用解构,而是直接访问数组元素
  for (let i = 0; i < directions.length; i++) {
    const direction = directions[i];
    let count = 1; // 当前棋子已算一个

    // 向一个方向检查
    for (let step = 1; step < 5; step++) {
      const r = row + direction.dr * step;
      const c = col + direction.dc * step;
      if (r >= 0 && r < 15 && c >= 0 && c < 15 && this.board[r][c] === this.currentPlayer) {
        count++;
      } else {
        break;
      }
    }

    // 向相反方向检查
    for (let step = 1; step < 5; step++) {
      const r = row - direction.dr * step;
      const c = col - direction.dc * step;
      if (r >= 0 && r < 15 && c >= 0 && c < 15 && this.board[r][c] === this.currentPlayer) {
        count++;
      } else {
        break;
      }
    }

    // 如果连成5个,则获胜
    if (count >= 5) {
      return true;
    }
  }

  return false;
}

更多关于HarmonyOS鸿蒙Next中ArkTS的代码这个数组编译出问题,提示错误如下的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,如果ArkTS代码中的数组编译出现问题,常见错误可能包括类型不匹配、数组越界、或语法错误。请检查数组声明和使用的代码段,确保类型正确、索引在有效范围内,并符合ArkTS的语法规范。具体错误信息有助于更准确地定位问题。

回到顶部