Interface berfungsi untuk mendeskripsikan data dan behaviour dari object. Interface hanya digunakan pada TypeScript, tidak akan di-compile kedalam JavaScript.
Interface dapat dibayangkan sebagai cara untuk memberikan informasi kepada TypeScript untuk mencegah error pada hasil kompilasi.
Berikut contoh interface dengan nama Todo, memiliki 2 property name dengan type data string, dan completed dengan type data boolean.
Tanda tanya menunjukan property optional, boleh diisi atau tidak.
interface Todo {
name: string;
completed?: boolean;
}
Untuk menggunakan interface, assign ke variable. Perhatikan karena property completed adalah optional, kita dapat mengosongkan saat inisialisasi.
Ada dua cara untuk menggunakan interface, menggunakan tanda : atau cara casting dengan tanda <>, lihat contoh dibawah.
#cara pertama
var todo: Todo = {
name: "Beli Indomie"
}
#cara kedua
var todo = <Todo>{
name: "Beli Indomie"
}
Selain untuk property, interface juga dapat digunakan untuk mendefinisikan method. Berikut contohnya:
interface ITodoService {
add(todo: Todo) : Todo;
del(todoId: number) : void;
getAll() : Todo[];
getById(todoId: number) : Todo;
}