Usualmente escribo este tipo de condiciones:
if (title && content){ // code }Pero luego veo este ejemplo:
const canSave = Boolean(title) && Boolean(content) && Boolean(userId) Y usaron canSave para pasar a prop deshabilitado en un botón.
¿Es una mejor práctica usar Boollean en lugar de simplemente hacer lo siguiente?
const canSave = title && content && userId¿En qué casos debo usar Boolean()?
El objetivo principal de la función booleana es convertir un valor a booleano, en su caso tiene sentido convertir a booleano antes de asignarlo a una variable porque si intenta hacerlo de esa manera:
const canSave = title && content && userId la variable canSave asignará el valor de userId e ignorará el resto, pero si convierte los valores a booleanos, la variable canSave asignará el resultado de una comparación entre estos valores. Otra razón para usar la función booleana podría ser convertir un valor antes de pasarlo a una función que solo acepte booleanos como parámetros, así:
const foo = (bar) => { if(typeof bar !== "boolean") { throw new Error("not a boolean") } // do something else } foo(2) // Error foo(Boolean(2)) // OkEn este caso, tiene sentido convertir el valor a booleano, tal vez otro caso sería convertir el valor antes de guardarlo en una base de datos. Como valores como números positivos, cadenas, matrices y objetos son siempre verdaderos y cero o números negativos, cadenas vacías, indefinidas y nulas son falsas , hay algunos casos en los que no tiene sentido convertirlo, como en una declaración condicional, así :
if (title && content && userId) { // do something }Estas variables ya se convertirán en booleanas, por lo que convertirlas solo creará redundancia en su código.