Tengo una función a la que se le pasa un argumento de una llamada de red y quiero protegerme de estos argumentos cuando son null , faltan o no están definidos. ¿Puedo simplemente predeterminar cada propiedad como null y luego verificar que sean null como mi guardia? ¿O hay una manera más segura?
exports.pushNotify = functions.https.onCall((data, _context) => { const recipientUserId = data.recipientUserId || null; const senderUserId = data.senderUserId || null; const senderName = data.senderName || null; const messageText = data.messageText || null; if (recipientUserId != null && senderUserId != null && senderName != null && messageText != null) { // proceed } else { // terminate } });Si la truthiness es lo que está comprobando para sus argumentos, puede limpiar este código con desestructuración y evaluación veraz. Eso se vería así:
exports.pushNotify = functions.https.onCall((data, _context) => { const { recipientUserId, senderUserId, senderName, messageText } = data; const valid = recipientUserId && senderUserId && senderName && messageText; if (!valid) { // terminate } // proceed }); Una forma sencilla de pensar en un valor truthy es que no es null , undefined , cadena vacía o 0. Vea una tabla de todos los valores verdaderos/falsos aquí: https://dorey.github.io/JavaScript-Equality-Table / .