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