TypeScript Tidak Akan Mengizinkan Anda Melakukan Panggilan Itu: Menyandikan Protocol State dalam Type System
Cara menggunakan phantom types dan parameter `this` untuk mengubah transisi protocol yang ilegal menjadi error waktu kompilasi, bukan bug waktu runtime.