Lewati ke konten

Interface dan Type

Sintaks Umum

Dalam TypeScript, interface mendefinisikan struktur objek dengan menentukan nama dan tipe properti atau metode yang harus dimiliki sebuah objek. Sintaks umum untuk mendefinisikan interface dalam TypeScript adalah sebagai berikut:

interface InterfaceName {
property1: Type1;
// ...
method1(arg1: ArgType1, arg2: ArgType2): ReturnType;
// ...
}

Demikian pula untuk definisi tipe:

type TypeName = {
property1: Type1;
// ...
method1(arg1: ArgType1, arg2: ArgType2): ReturnType;
// ...
};

interface InterfaceName atau type TypeName: Mendefinisikan nama interface. property1: Type1: Menentukan properti interface beserta tipe yang sesuai. Beberapa properti dapat didefinisikan, masing-masing dipisahkan oleh titik koma. method1(arg1: ArgType1, arg2: ArgType2): ReturnType;: Menentukan metode interface. Metode didefinisikan dengan namanya, diikuti daftar parameter dalam tanda kurung dan tipe kembalian. Beberapa metode dapat didefinisikan, masing-masing dipisahkan oleh titik koma.

Contoh interface:

interface Person {
name: string;
age: number;
greet(): void;
}

Contoh type:

type TypeName = {
property1: string;
method1(arg1: string, arg2: string): string;
};

Dalam TypeScript, tipe digunakan untuk mendefinisikan bentuk data dan menerapkan pemeriksaan tipe. Ada beberapa sintaks umum untuk mendefinisikan tipe dalam TypeScript, bergantung pada kasus penggunaan tertentu. Berikut beberapa contohnya:

Tipe Dasar

let myNumber: number = 123; // tipe number
let myBoolean: boolean = true; // tipe boolean
let myArray: string[] = ['a', 'b']; // array string
let myTuple: [string, number] = ['a', 123]; // tuple

Objek dan Interface

const x: { name: string; age: number } = { name: 'Simon', age: 7 };

Tipe Union dan Intersection

type MyType = string | number; // Tipe union
let myUnion: MyType = 'hello'; // Dapat berupa string
myUnion = 123; // Atau angka
type TypeA = { name: string };
type TypeB = { age: number };
type CombinedType = TypeA & TypeB; // Tipe irisan
let myCombined: CombinedType = { name: 'John', age: 25 }; // Objek dengan properti name dan age