Se trata de @babel/plugin-proposal-optional-chaining. Con este plugin no tendras que hacer mas condicionales para verificar que una variable o función existe antes de ejecutarla o acceder a esta.
Asi lo haciamos antes sin optional-chainning:
const user = {
_id: '1234567890',
emails: [
{
address: 'miaw@cat.com',
verified: true
}
],
profile: {
firstName: 'Felix',
lastName: 'The Cat'
}
};
const email = user && user.emails && user.emails[0] && user.emails[0].address;
const phone = user && user.getPhone && user.getPhone();
const firstName = user && user.profile && user.profile.firstName;
Con optional chaining se vuelve mucho mas sencillo y limpio.
const user = {
_id: '1234567890',
emails: [
{
address: 'miaw@cat.com',
verified: true
}
],
profile: {
firstName: 'Felix',
lastName: 'The Cat'
},
getPhone() {
return '555-5555';
}
};
const email = user?.emails?.[0]?.address;
const phone = user?.phone?.();
const firstName = user?.profile?.firstName;
¿Que tal les parece esta sintaxis? A mi me ha gustado bastante y la uso en todos mis proyectos.