Lompati ke konten utama
Modul 7 · Pelajaran 2 dari 214/14 dalam kursus~15 min
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:

TS
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:

TS
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

Latihan#ts.m7.l2.e1
Upaya: 0Memuat…

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.

Memuat editor…
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

Latihan#ts.m7.l2.e2
Upaya: 0Memuat…

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.

Memuat editor…
Tunjukkan petunjuk

Gunakan deklarasi global { antarmuka Jendela { config: Rekam<string, string>; } }.

Solusi tersedia setelah 3 upaya