reactjs - Multiplicando por menos 1 en TypeScript + React
Tengo una variable de estado
const [sortDirection, setSortDirection] = useState<1 | -1>(1);
Tengo un botón que puede modificar la variable de estado de esta manera
setSortDirection(sortDirection * -1);
Sin embargo, recibo la advertencia
Argument of type 'number' is not assignable to parameter of type 'SetStateAction<1 | -1>'
¿Cómo debería proceder para implementar esta funcionalidad? El sortDirection solo puede ser -1 o 1, y multiplicar por -1 también debería adherirse a esa regla.
Por supuesto, también estoy abierto a otras implementaciones, no necesito tener sortDirection: 1 | -1.
Respuesta #1
Typescript no puede inferir que sortDirection * -1 siempre será 1 | -1
Pero puedes hacer lo siguiente:
setSortDirection(sortDirection > 0 ? -1 : 1);
Parque infantil
De todos modos, te irá mejor usando un boolean en lugar de este número de 2 estados.
