Unknown in Catch
Dikarenakan JavaScript memperbolehkan untuk menggunakan
tipe data apapun, TypeScript tidak mendukung
deklarasi tipe data pada sebuah galat (`Error()`)
// Secara historis, hal tersebut menandakan bahwa `e` dalam
blok `catch` akan dianggap sebagai `any`. Anggapan tersebut
memberikan kebebasan untuk mengakses properti apapun.
Pada TypeScript versi 4.0, kami telah melonggarkan
batasan pada pernyataan tipe pada klausa `catch` sehingga
tipe `any` dan `unknown` merupakan tipe yang valid.
Perilaku yang sama dengan `any`:
try {
// ..
} catch (e) { }
try {
// ..
} catch (e) {
e.stack;
}
// Perilaku eksplisit dengan `unknown`:
try {
// ..
} catch (e) {
// Anda tidak dapat menggunakan `e` sama sekali
// sampai sistem tipe data mengetahui tipe data dari `e`.
// Anda dapat mempelajari lebih lanjut mengenai
// hal tersebut melalui example:unknown-and-never.
e.stack;
if (e instanceof SyntaxError) {
e.stack;
}
}