Chybové vazby jsou konečně volitelné

Právě jsem si prošel své týdenní zpravodaje a narazil jsem na volitelný návrh závazné vazby, který byl odeslán v ES2019.

Přidání jazyka umožňuje vývojářům konečně vynechat argument chyby při práci s try/catch prohlášení. Tato funkce může být obzvláště užitečná v moderním kódu JavaScript, který používá async /await hodně.

Nejlépe to popisuje několik řádků kódu:

// classical try/catch
// ✅ works
try {
  throw new Error('oh noes');
} catch(e) {
  console.log(`Error!!! But, I don't care about the error object...`);
} 



// try/catch without error arguments
// ❌ throws "Uncaught SyntaxError: Unexpected token ')'"
try {
  throw new Error('oh noes');
  
//     👇 omitting the error argument doesn't work...
} catch() {
  console.log(`Error!!! But, I don't care about the error object...`);
} 



// try/catch without error binding
// ✅ works again 🎉
// (across majors Edge, Firefox, Safari, Chrome)
try {
  throw new Error('oh noes');

//     👇 omitting `()` altogether works now 🎉
} catch {
  console.log(`Error!!! But, I don't care about the error object...`);
}

Tento jazykový přídavek byl trochu kontroverzní a lidé o něm horlivě diskutovali v úložišti návrhů. Osobně si myslím, že to může být užitečné v některých případech rychlého prototypování, kde je dokonalé zpracování chyb druhotné.

Při čtení o této funkci se ukázalo, že hlavní prohlížeče (Chrome, Safari, Edge, Firefox) toto přidání již podporují. 🎉 Pokud musíte podporovat více než jen nejnovější a nejlepší prohlížeče, můžete tuto novou jazykovou funkci používat také dnes pomocí pluginu babel.

(Dokumenty MDN jsou aktuálně zastaralé a čeká se na PR)

Pokud se o tom chcete dozvědět více, zde jsou některé další zdroje:

  • Dr. Názor Axela Rauschmayera na funkci
  • volitelný návrh řetězení na GitHubu