Interface dan Type di TypeScript

Di TypeScript, baik interface maupun type digunakan untuk mendefinisikan struktur data atau kontrak untuk tipe data tertentu. Meskipun keduanya memiliki tujuan yang mirip, mereka memiliki perbedaan dalam cara mereka digunakan dan beberapa fitur yang tersedia.

  1. Interface: Interface adalah kontrak yang mendefinisikan struktur data dengan cara yang jelas dan ekspresif. Interface dapat digunakan untuk mendeklarasikan bentuk objek, termasuk properti-properti yang harus ada, tipe data properti tersebut, dan metode yang harus diimplementasikan oleh objek tersebut. Contoh penggunaan interface dalam TypeScript:

    interface Person {
        name: string;
        age: number;
        greet(): void;
    }
    
    let person: Person = {
        name: "John",
        age: 30,
        greet() {
            console.log("Hello, my name is " + this.name);
        }
    };
    person.greet(); // Output: Hello, my name is John
  2. Type: Type adalah fitur yang memungkinkan untuk memberikan nama pada tipe data yang ada atau membuat tipe data baru berdasarkan tipe data yang ada. dapat menggunakan type untuk mendefinisikan tipe data sederhana, tipe data gabungan, atau tipe data yang kompleks. Contoh penggunaan type dalam TypeScript:

    type Point = {
        x: number;
        y: number;
    };
    
    let p: Point = { x: 5, y: 10 };

Perbedaan utama antara interface dan type adalah:

  • Interface dapat digunakan untuk mendefinisikan objek, kelas, dan juga dapat digunakan sebagai kontrak untuk kelas dan objek, sementara type dapat digunakan untuk mendefinisikan tipe data apa pun, termasuk tipe data sederhana, gabungan, atau kompleks.

  • Interface dapat digunakan secara berganda untuk mendefinisikan struktur data yang serupa, sedangkan type tidak dapat digunakan secara untuk mendefinisikan tipe data yang serupa.

Pilihan antara menggunakan interface dan type tergantung pada kebutuhan dan preferensi pengembang.

Sumber:

Last updated