【问题标题】:Getting this typescript error: Unsafe member access [key] on an any value收到此打字稿错误:任何值上的不安全成员访问 [key]
【发布时间】:2021-12-23 04:36:12
【问题描述】:

我写了一个深度相等检查函数。对于突出显示的行,我收到此错误。

谁能建议我需要做什么来修复这个错误(或者至少这个错误意味着什么)。

代码:

export const deepEqual = (object1: any, object2: any) => {
  const keys1 = Object.keys(object1);
  const keys2 = Object.keys(object2);
  if (keys1.length !== keys2.length) {
    return false;
  }
  for (const key of keys1) {
    const val1: unknown = object1[key] as unknown; // Error for this line
    const val2: unknown = object2[key] as unknown; // Error for this line
    const areObjects = isObject(val1) && isObject(val2);
    if (
      (areObjects && !deepEqual(val1, val2)) ||
      (!areObjects && val1 !== val2)
    ) {
      return false;
    }
  }
  return true;
};

错误:

45:27  error    Unsafe member access [key] on an any value     @typescript-eslint/no-unsafe-member-access
45:27  error    Unsafe member access [key] on an any value     @typescript-eslint/no-unsafe-member-access

【问题讨论】:

    标签: javascript reactjs typescript typescript-typings


    【解决方案1】:

    错误意味着您尝试访问类型为any 的对象的属性(或成员)。 TS 中的any 不会为您提供有关变量背后值的任何线索或知识。

    ESLint 显示错误,因为访问类型为 any 的对象成员可能会导致不需要的(并且可能未被检测到)错误。你的代码仍然可以编译,因为 TypeScript 本身没有问题。如果你真的知道自己在做什么,你可以通过评论禁用某些行的 ESLint

    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
    

    在他们之上。

    【讨论】:

    • 感谢 H1ghBre4k3r,但我正在寻找一种方法来修复函数本身。
    猜你喜欢
    • 2023-02-18
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 2023-02-18
    • 2013-05-26
    • 2021-09-29
    • 1970-01-01
    相关资源
    最近更新 更多