Pelajaran modul (2/2)
Deklarasi dan Penggabungan
File deklarasi tipe (dengan ekstensi .d.ts) digunakan dalam TypeScript untuk mendeskripsikan bentuk kode JavaScript yang ada tanpa menerapkan logika sebenarnya. Mereka hanya berisi definisi tipe, antarmuka, dan tanda tangan fungsi.
File-file ini penting ketika menggunakan perpustakaan pihak ketiga yang ditulis dalam JavaScript murni.
Penggabungan Deklarasi
Penggabungan Deklarasi adalah perilaku di mana compiler menggabungkan dua atau lebih deklarasi terpisah yang dideklarasikan dengan nama yang sama ke dalam satu definisi.
Kasus yang paling umum adalah penggabungan antarmuka:
interface User {
name: string;
}
interface User {
age: number;
}
// The resulting User interface has both name and age properties!
const student: User = {
name: 'Alice',
age: 23,
};Jika properti memiliki nama yang sama, maka properti tersebut harus bertipe sama, jika tidak, TypeScript akan melaporkan kesalahan.
Memodifikasi Modul Global dan Eksternal
Kita dapat menggunakan penggabungan deklarasi untuk memperluas antarmuka yang ditentukan dalam modul lain atau dalam lingkup global.
Misalnya, jika kita ingin menambahkan properti ke objek global window browser:
declare global {
interface Window {
analyticsToken: string;
}
}Dengan menggunakan declare global, kami memberi tahu TypeScript bahwa kami memasukkan tanda tangan baru ke antarmuka Window global yang ada.
Cobalah sendiri
Latihan 1: Penggabungan Deklarasi Dasar
Di TypeScript, antarmuka dengan nama yang sama dalam cakupan yang sama digabungkan secara otomatis. Deklarasikan Pengguna antarmuka dengan nama properti: string, lalu di blok kedua deklarasikan Pengguna antarmuka yang sama dengan menambahkan properti umur: nomor. Terakhir, deklarasikan pengguna konstan bertipe User dengan nilai yang sesuai.
Tunjukkan petunjuk
Deklarasikan antarmuka Pengguna dua kali, masukkan properti masing-masing, lalu tetapkan bidang ke objek pengguna.
Solusi tersedia setelah 3 upaya
Latihan 2: Memperluas Antarmuka Jendela Global
Bayangkan Anda ingin memperluas antarmuka Window global untuk menambahkan properti khusus bernama config dengan tipe Record<string, string>. Tulis deklarasi yang benar menggunakan deklarasi global untuk menggabungkan properti baru ke dalam antarmuka Window global.
Tunjukkan petunjuk
Gunakan deklarasi global { antarmuka Jendela { config: Rekam<string, string>; } }.
Solusi tersedia setelah 3 upaya