He escrito una función de verificación de igualdad profunda. Recibo este error para las líneas resaltadas.
¿Alguien puede sugerir qué debo hacer para corregir este error (o al menos qué significa el error).
Código:
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; };Error:
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-accessLos errores significan que intenta acceder a una propiedad (o miembro) de un objeto con el tipo any . any en TS no le da pistas ni conocimiento sobre los valores detrás de las variables.
ESLint muestra un error, ya que acceder a miembros de objetos con any tipo puede generar errores no deseados (y quizás no detectados). Su código aún se compilará, ya que TypeScript por sí solo no tiene problemas con eso. Si realmente sabe lo que está haciendo, puede deshabilitar ESLint para ciertas líneas comentando
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-accesssobre ellos.