Quiero tener una verificación simple si existe un valor pero no es algo, ese algo en mi caso es la cadena none . en mi llamada de descanso (que no puedo controlar) tengo un objeto interno que tiene el estado
{ name: "some name", internal: { // can be null of an object status: "my status" // can be "none" which means I can't find the status } }Quiero verificar ambos, pero hasta ahora solo pude encontrar
a = obj?.internal?.status if (a && a !== "none") { // code }¿Hay una mejor manera de estructurar mi declaración if o mi código?
Podrías hacer algo como esto:
if((obj?.internal?.status || "none") !== "none") { // code } O puede usar el operador coalescente nulo, como dice jsejcksn, para hacer que la condición sea verdadera en caso de que el estado sea una cadena vacía ( "" ).
Puede usar el operador coalescente nulo ( ?? ) :
const status = obj?.internal?.status ?? 'none'; if (status !== 'none') { // use the status }