簡體   English   中英

收到此打字稿錯誤:對任何值不安全的成員訪問 [key]

[英]Getting this typescript error: Unsafe member access [key] on an any value

我寫了一個深度相等檢查函數。 對於突出顯示的行,我收到此錯誤。

任何人都可以建議我需要做什么來修復此錯誤(或至少該錯誤意味着什么)。

代碼:

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

錯誤意味着,您嘗試訪問類型為any的對象的屬性(或成員)。 TS 中的any不提供有關變量背后值的任何線索或知識。

ESLint 顯示錯誤,因為訪問類型為any的對象成員可能會導致不需要的(並且可能未被檢測到的)錯誤。 你的代碼仍然可以編譯,因為 TypeScript 本身沒有問題。 如果你真的知道你在做什么,你可以通過注釋禁用某些行的 ESLint

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

在他們上面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM