Sistem tipe data di TypeScript memiliki tingkat keketatan yang berbeda saat bekerja dengan basis kode:
- Sistem tipe data yang hanya berdasarkan pada inferensi dengan kode JavaScript
- Pengetikkan secara bertahap di JavaScript melalui JSDoc
- Menggunakan
// @ts-checkdi berkas JavaScript - Kode TypeScript
- TypeScript dengan
strictdiaktifkan
Setiap langkah mewakili tahapan sistem tipe yang lebih aman, tetapi tidak setiap proyek membutuhkan tingkat verifikasi seperti itu.
TypeScript dengan JavaScript
Ini ketika editor-mu yang menggunakan TypeScript untuk menyediakan tool, seperti auto-complete, jump to symbol, dan refactoring, misalnya penamaan ulang. Di Homepage tersedia daftar editor yang memiliki plugin TypeScript.
Menyediakan Type Hints di JS melalui JSDoc
Di berkas .js, tipe sering kali dapat diketahui. Namun ketika tipe tidak diketahui, mereka bisa ditentukan menggunakan sintaks JSDoc.
Anotasi JSDoc diletakkan sebelum mendeklarasikan suatu hal. Seperti contoh berikut:
jsTry/** @type {number} */varx ;x = 0; // OKx = false; // OK?!
Anda dapat menemukan daftar lengkap mengenai dukungan pola JSDoc di Tipe-tipe yang didukung JSDoc
@ts-check
Baris terakhir dari contoh kode sebelumnya akan menimbulkan kesalahan dalam TypeScript, tetapi tidak secara bawaan dalam proyek JS.
Untuk mengaktifkan galat dalam berkas JavaScript-mu, tambahkan: // @ ts-check ke baris pertama dalam berkas.js Anda agar TypeScript dapat memeriksa kesalahan.
jsTry// @ts-check/** @type {number} */varx ;x = 0; // OKType 'boolean' is not assignable to type 'number'.2322Type 'boolean' is not assignable to type 'number'.= false; // Not OK x
Jika anda memiliki banyak berkas JavaScript yang ingin ditambahkan pemeriksaan galatnya, Anda bisa beralhir menggunakan jsconfig.json.
Dengan begitu, Anda tidak perlu menambahkan // @ts-nocheck di tiap berkasnya.
TypeScript mungkin memberikan galat yang Anda tidak sepakati. Pada kasus tersebut, Anda bisa membiarkan galat itu spesifik dibaris manapun dengan menambahkan // @ts-ignore atau // @ts-expect-error.
jsTry// @ts-check/** @type {number} */varx ;x = 0; // OK// @ts-expect-errorx = false; // Not OK
Untuk mempelajari lebih lanjut bagaimana JavaScript diinterpretasi oleh TypeScript, Anda dapat membaca Bagaimana TS Type Memeriksa JS