typescript - Javascript: usando "!!" en contexto booleano
¿Hay alguna razón para usar !!someValue (que es equivalente a Boolean(someValue)) en un contexto booleano? En otras palabras, en situaciones como if (someValue) ..., ¿tiene sentido escribir if (!!someValue) ...?
Me duele la vista y creo que es redundante, pero quiero verificar que no haya casos límite que lo requieran, porque me encontré con una base de código donde esto parece ser la forma predeterminada de verificar la veracidad.
Aclaración: sí, en el caso general !!someValue convertirá someValue a un booleano; me refiero a contextos donde el tiempo de ejecución convertirá automáticamente someValue a true o false.
Respuesta #1
Esa es una forma útil de convertir cualquier tipo de dato en booleano; el sinónimo exacto sería:
Boolean(someValue)
Algunos prefieren el 'doble signo de exclamación' por ser más conciso, mientras que otros prefieren la conversión clásica con Boolean(someValue) para una mejor legibilidad.
Entonces, volviendo a tu pregunta, es más probable que sea redundante en las condiciones, pero puede ser útil cuando se necesita una conversión de cualquier tipo a booleano.
Respuesta #2
Nunca necesitas usar un doble signo de exclamación para convertir un valor booleano a booleano.
boolean === !!boolean
