Mendefinisikan Type Object

Pada modul-modul sebelumnya telah dibahas implementasi ES2015 dalam TypeScript. Pada modul ini akan dibahas penggunaan type object, yang merupakan kekuatan utama dari TypeScript.

Disini digunakan istilah object, karena kita akan membahas dari variable hingga fungsi.

Mendefinisikan Type Variable

Untuk mendefinisikan tipe variable digunakan tanda : kemudian dilanjutkan typenya.

Berikut contoh deklarasi variable yang valid:

var a: string;
let b: number;
const c : string = "Test";
var d, e : number;

Mendefinisikan Type Parameter dan Return

Kita juga dapat mendefinisikan type dari parameter. Aturan penulisan sama seperti mendefinisikan type variable.

function totalLength(x: string, y: string){
    var total: number = x.length + y.length;
    return total;
}

Selain parameter, kita juga dapat mendefinisikan type dari function return.

function totalLength(x: string, y: string): number{
    var total: number = x.length + y.length;
    return total;
}

Walaupun kita tidak definisikan type dari function return, TypeScript dapat mendeteksi bahwa return adalah type number. Namun, semakin kita jelas dalam mendefinisikan intent dari suatu object, akan mudah dibaca dan mudah dalam maintenance.

Menggunakan Union Type

Adalah fitur TypeScript untuk mengatur fungsi dapat menerima 2 type yang berbeda. Mari langsung lihat dari kode untuk lebih jelasnya.

Untuk menggunakan union type, digunakan pipe operator “|”.

function totalLength(x: (string|any[]), y: (string|any[])): number{
    var total: number = x.length + y.length;
    return total;
}

Contoh fungsi diatas dapat menerima string atau array object.

JIka Anda ingin melakukan manipulasi yang berdasarkan type object, harus ditambahkan pemeriksaan type object.

Contoh untuk type array, kita akan melakukan push. Sementara untuk type string, dilakukan substring.

Jika method yang digunakan dikenal dikedua tipe object, kita dapat gunakan langsung tanpa perlu melakukan pemeriksaan type object

function totalLength(x: (string|any[]), y: (string|any[])): number{
    var total: number = x.length + y.length;

    x.slice(0)

    if(x instanceof Array){
        x.push('ABC');
    }

    if(x instanceof String){
        x.substring(2);
    }

    return total;
}

Silakan bereksperimen, jika Anda tidak menggunakan pengecekan apakah parameter x, array atau bukan, langsung menggunakan perintah push, TypeScript akan menampilkan error. Demikian juga dengan perintah substring.

Sharing is caring:

Leave a Comment