Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

255
Views
¿Cuándo usar Boolean (var1)?

En el tutorial de redux dice:

 const canSave = Boolean(title) && Boolean(content) && Boolean(userId)
  • Pero userId = 0 luego se convertiría en falso
  • ¿No puedes simplemente usar lo siguiente?
 const canSave = title && content && userId
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Si usa TypeScript con title && content && userId expresión de ID de usuario, la evaluación de la expresión es una string , el TSC generará un error de discrepancia de tipo, vea el siguiente ejemplo:

 import React, { useState } from 'react'; export default function Test() { const [title, setTitle] = useState(''); const [content, setContent] = useState(''); const [userId, setUserId] = useState(''); return <button disabled={title && content && userId}>click me</button>; }

Error:

El tipo "cadena" no se puede asignar al tipo "booleano". '

Entonces necesitas convertir la cadena a booleana. Del documento booleano

No utilice un objeto Boolean para convertir un valor no booleano en un valor booleano. Para realizar esta tarea, en su lugar, use Boolean como una función, o un operador NOT doble:

 var x = Boolean(expression); // use this... var x = !!(expression); // ...or this

Entonces el código debería ser:

 const canSave = Boolean(title) && Boolean(content) && Boolean(userId); // or const canSave = !!title && !!content && !!userId;

Ambos están bien.

about 4 years ago · Juan Pablo Isaza Report

0

Sí, puedes, pero imagina que obtienes un resultado extraño para algunos valores del título. Imagina que alguien pone false en su título o contenido. Aunque no estoy seguro sobre el ID de usuario

about 4 years ago · Juan Pablo Isaza Report

0

Sería necesario tener que convertir a booleano explícitamente en el caso (probablemente un poco inusual) de que el resultado no se verifique por veracidad o falsedad, sino contra otro booleano. Para ilustrar, la siguiente lógica falla:

 const title = ''; const content = 'content'; const userId = 'foo'; const canSave = title && content && userId; if (canSave === false) { console.log('cant save'); throw new Error(); } console.log('saving...');

Convertir canSave a booleano solucionará eso.

Pero un enfoque más SECO sería llamar a Boolean en el resultado completo, en lugar de en cada expresión individual.

 const canSave = Boolean(title && content && userId);

Pero userId = 0 luego se convertiría en falso

No estoy seguro de a qué te refieres. Si eso es un problema, ¿quizás la lógica que desea es typeof userId === 'number' ?

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!