Pregunta simple: ¿Hay alguna manera de usar una expansión dentro de una declaración condicional usando el operador ternario?
const a = 1, b = 2; // Works console.log(...[ a, b ]); // Works console.log(...(a ? [ a, b ] : [ 'Not found' ])); // Doesn't work console.log(a ? ...[ a, b ] : 'Not found');Desafortunadamente esto no es posible actualmente. La … spread syntax , como su nombre nos dice, es una parte de la sintaxis del lenguaje y no un operador 'normal' que trata con expresiones (à la + o typeof ). El operador ternario necesita expresiones después de ? y : , por lo que no puede usar la sintaxis en esos lugares.
Tendrás que hacer por ejemplo
condition ? console.log(…) : console.log(…)Si y no
No, porque en algunos casos no es compatible
Sí, debe usarlo de la forma en que lo admite, básicamente manipularlo
Por ejemplo
const a = 1, b = 2; // Works console.log(...[ a, b ]); // Doesn't work //console.log(a ? ...[ a, b ] : 'Not found'); //use this a ? console.log(...[a,b]) : "Not Found" //you can have other ways too to achieve this