Estoy tratando de escribir una función para ordenar varias matrices en el objeto, según una clave. Aquí está mi código:
const sort = (value: keyof TargetTypes) => { const sortedTargetsList = targetsList && [...targetsList] sortedTargetsList?.sort((a, b) => a[value].localeCompare(b[value])) } Entonces tengo un error al pasar el mouse localeCompare diciendo (Google Trad):
Property 'localeCompare' does not exist on type 'string | boolean | string [] | [] | {platform: string; link: string; userId: string; } [] '. Property 'localeCompare' does not exist on type 'false' .ts (2339) Intenté varias cosas pero no puedo encontrar una manera o incluso entender qué es lo que va mal. Lo intenté codificando el valor de esta manera, y funciona: a['targetName']
gracias por su ayuda chicos.
Resuelto al hacer esto, no estoy seguro si es la mejor manera... No me gustó la línea de desactivación de eslin pero no tengo ninguna pista...
const sort = (value: keyof TargetTypes) => { setTargetsList( targetsList && // eslint-disable-next-line @typescript-eslint/no-explicit-any [...targetsList].sort((a: any, b: any) => a[value].localeCompare(b[value]), ), ) }Preferí esta solución a la de @shobe solo porque me da sugerencias después de escribir "sort(" para seleccionar una clave disponible.