Uncalled Function Checks
Terdapat sebuah fitur pada TypeScript versi 3.7,
yaitu pemeriksaan pada pernyataan `if` ketika
anda secara tidak sengaja menggunakan sebuah fungsi
dimana seharusnya anda menggunakan nilai kembalian
dari sebuah fungsi.
Hal ini hanya berlaku bila fungsi yang dimaksud ada,
yang menyebabkan pernyataan `if` akan selalu bernilai `true`.
Di bawah ini merupakan sebuah contoh antarmuka _plugin_,
dimana ada _callback_ yang harus ada dan _callback_ pilihan.
// Karena _method_ `pluginShouldLoad` bisa saja tidak ada,
maka pemeriksaan pada pernyataan `if` sah dilakukan.
interface PengaturanPlugin {
pluginShouldLoad?: () => void;
pluginIsActivated: () => void;
}
declare const plugin: PengaturanPlugin;
// _Method_ `pluginIsActivated` seharusnya selalu ada, namun TypeScript
tetap memperbolehkan pemeriksaan pada pernyataan `if`, karena _method_
tersebut dijalankan di dalam blok `if`.
if (plugin.pluginShouldLoad) {
// Lakukan sesuatu ketika `pluginShouldLoad` ada.
}
// Pada TypeScript versi 3.6 ke bawah, hal ini bukan merupakan sebuah kesalahan.
if (plugin.pluginIsActivated) {
// Ingin melakukan sesuatu ketika _plugin_ diaktifkan,
// namun tidak dengan memanggil _method_ melainkan kita gunakan
// sebagai properti.
}
if (plugin.pluginIsActivated) {
plugin.pluginIsActivated();
}