1. “Tidak dapat menemukan nama 'variableName'”
let count = 5;console.log(count); // ✅ No error
![]() |
sumber: dev.to |
2. “Jenis 'X' tidak dapat ditetapkan untuk jenis 'Y'”
Penyebab: Hal ini terjadi ketika Anda mencoba menetapkan nilai dari satu tipe ke variabel yang dideklarasikan dengan tipe lain.
Perbaikan: Dan, jika Anda yakin dengan tipenya, Anda dapat menggunakan pernyataan tipe (as).
let num: number = 10;
// let str: string = num; ❌ Error
let str: string = num.toString(); // ✅ Fix
3. “Properti 'X' tidak ada pada tipe 'Y'”
Penyebab: Ini karena objek tidak memiliki key/property.
Perbaikan: Pastikan untuk menyertakan properti dalam definisi tipe atau gunakan pernyataan tipe.
interface User {
name: string;
}
let user: User = { name: "Alice" };
// console.log(user.age); ❌ Error
4. “Argumen bertipe 'X' tidak dapat ditetapkan ke parameter bertipe 'Y'”
Penyebab: Gagal mengoper argumen dengan tipe yang diharapkan ke fungsi.
Perbaikan: Pastikan tipe parameter fungsi sesuai dengan input yang diharapkan.
function greet(name: string) {
console.log(`Hello, ${name}`);
}
greet("John"); // ✅ No error
// greet(42); ❌ Error
5. “Objek mungkin 'null' atau 'tidak terdefinisi'”
Penyebab: TypeScript memiliki pemeriksaan null yang ketat untuk menandai kasus-kasus ketika sebuah variabel dapat menjadi null atau tidak terdefinisi.
Perbaikan: Gunakan perangkaian opsional (?.), penggabungan null (??), atau secara eksplisit memeriksa null.
let user: { name?: string } = {};console.log(user.name?.toUpperCase()); // ✅ No error
6. “Fungsi yang tipe deklarasinya bukan 'void' atau 'any' harus mengembalikan nilai”
Penyebab: Fungsi yang memiliki keterangan tipe pengembalian harus mengembalikan nilai.
Perbaikan: Pastikan fungsi selalu mengembalikan nilai.
function add(a: number, b: number): number {
return a + b; // ✅ No error
}
7. “TypeScript mengeluh tentang penggunaan 'apa saja'”
Penyebabnya: TypeScript tidak menyarankan untuk menggunakan apapun, karena melanggar sistem tipe.
Perbaikan: Hindari penggunaan apapun, targetkan tipe yang lebih sempit
let data: unknown = "Hello";
if (typeof data === "string") {
console.log(data.toUpperCase()); // ✅ Type-safe
}
8. “Tidak dapat menetapkan ke 'X' karena ini adalah properti hanya-baca”
Penyebab: Mencoba mengubah properti hanya-baca.
Perbaikan: Jangan ubah properti hanya-baca, atau hapus pengubah hanya-baca jika mutasi diperlukan.
interface Config {
readonly apiKey: string;
}
let config: Config = { apiKey: "12345" };
// config.apiKey = "67890"; ❌ Error
Kesimpulan
Sistem tipe TypeScript membantu menangkap kesalahan sejak dini, tetapi juga dapat menimbulkan tantangan. Memahami kesalahan umum ini dan perbaikannya akan membuat pengembangan menjadi lebih lancar dan membantu meningkatkan potensi penuh TypeScript.
Kembali ke>>>> Menggunakan TypeScript dengan JavaScript: Panduan Komprehensif