el encadenamiento opcional no inseguro es una regla eslint sorprendente, que nos ayuda a identificar por qué estamos haciendo mal el encadenamiento opcional .
Tengo un caso en el que necesito realizar una operación de sort en id (en numbers ) que podría estar en el tipo de string , lo que tiene sentido arrojar un error porque podría dar como resultado NaN si order no es un número
const sortComparer = (a, b) => (+a?.order) - (+b?.order) Sin embargo, si manejo no-unsafe-optional-chaining siguiente manera, todavía arroja un error y no funciona:
const sortComparer = (a, b) => (+a.order || 0) - (+b.order || 0),La única forma de hacerlo funcionar es así:
const sortComparer = (a, b) => (a?.order ? +a.order : 0) - (b?.order ? +b.order : 0),¿Alguien sabe cómo solucionar esto de una mejor manera para evitar este problema?
Esto debería funcionar:
sortComparer: (a, b) => +(a?.order || 0) - +(b?.order || 0), Mueva el + fuera del () y use el encadenamiento opcional para manejar que a o b sean null .