Nah, sekarang aku akan membahas tipe data alias typescript. Sebelum itu mungkin kita akan mengenal dulu tipe data any dan juga tipe data union. Kita perlu tahu terlebih dahulu tentang any dan union sebelum kita mempelajari tentang alias.
Tipe Data Any
Perlu diingat bahwa typescript itu dikompilasi menjadi javascript. Javascript tidak memiliki tipe data yang kuat. Kita bebas mengubah-ubah tipe data pada javascript. Misalnya, ketika kita mendeklarasikan variable let nama = “Ardhan” dan mengubah nama = 100 itu tidak akan error di javascript. Di sisi lain typescript tidak mengijinkan kita melakukan itu. Meskipun tidak mengijinkan tapi type script tetap memberikan dukungan terhadap tipe data yang berubah-ubah. Tipe data itu disebut dengan any. Berikut ini adalah contoh penggunaan any.
describe("Test Type Alias", function (){
it('should use any', () => {
let name: any = "Ardhan";
name = 100;
console.info(name);
name = true;
console.info(name);
});
});
Sebenarnya any tidak disarankan untuk sering-sering digunakan. Jika kita terlalu sering menggunakan any artinya kita tidak perlu menggunakan typescript, lebih baik menggunakan javascript saja. Kita perlu menggunakan typescript karena tipe string memiliki tipe data yang kuat, dengan menggunakan any maka tipe datanya akan menjadi lemah.
Tipe Union
Selain any kita bisa menggunakan union. Tapi union bukan tipe data melainkan kita bisa menggunakan 2 atau lebih tipe data untuk sebuah variabel. Berikut ini adalah contoh penggunaan union.
describe("Test Type Alias", function (){
it('should use union', () => {
let id: string|number;
id = "03a3e7fc-4d88-4e0a-a985-aac48a676cb7";
console.info(id);
id = 123;
console.info(id);
});
});
Pada contoh di atas, kita membuat id memiliki tipe data string yang union dengan tipe data number. Dengan begitu kita dapat mengisi id dengan string atau dengan number. Tentunya kode di atas akan error jika kita mencoba mengisi id dengan boolean.
Jika kita punya object javascript kita bisa membuat tipe alias untuk object tersebut. Alias yang kita buat seperti sebuah kelas yang memiliki attribut. Misalkan kita punya sebuah object dengan nama category dan product. Kita bisa membuat alias dengan cara sebagai berikut:
export type Category = {
id: number;
name: string;
}
export type Product = {
id: number;
name: string;
price: number;
category: Category;
}
Jika sudah membuat alias, kita dapat menggunakan alias tersebut. Perhatikan contoh berikut
import {Category} from "../src/type-alias";
describe("Test Type Alias", function (){
it('should use alias', () => {
const snack: Category = {
id: 1,
name: "Snack"
}
const product: Product = {
id: 1,
name: "Chiki",
price: 5000,
category: snack
}
});
});
Nah, saat kita menggunakan alias sebagai tipe data maka kita wajib mengisi attribute yang ditentukan oleh alias. Jika kita tidak mengisi salah satu attribute maka akan terjadi error. Berikut ini contohnya jika kita tidak mengisi salah satu attribute yang sudah ditentukan.

Selain digunakan untuk membuat alias object, alias juga dapat digunakan untuk membuat alias yang lebih sederhana. Misalnya saja untuk union. Sebagai contoh, sebelumnya kita mendeklarasikan id = string|number, kita bisa merubahnya menggunakan alias sebagai berikut:
export type ID = string|number;
Dengan begitu kita dapat menggunakan id dengan tipe alias ID sehingga kita tulis seperti ini:
import {ID} from "../src/type-alias";
describe("Test Type Alias", function (){
it('should use alias for union', () => {
let id: ID;
id = "03a3e7fc-4d88-4e0a-a985-aac48a676cb7";
console.info(id);
id = 123;
console.info(id);
});
});
Penyederhanaan Alias dengan Tipe Object
Selain membuat alias kita bisa bisa secara langsung menggunakan tipe object. Penggunaan tipe object ini bisa digunakan untuk menggantikan tipe data alias. Dengan tipe data object kita tidak harus mendefinisikan alias terlebih dahulu dengan export type. Berikut ini contoh penggunaan tipe data object.
describe("Test Type Alias", function (){
it('should use object type', () => {
let person: {id: number, name: string} = {id: 1, name: "Ardhan"};
person.name = "Wahyu";
console.log(person);
});
});
Jika menggunakan alias kita harus mendefinisikan tipe untuk person dengan object kita bisa langsung mendefinisikannya.
Optional untuk tipe data alias typescript
Saat menggunakan alias atupun object, kita diharuskan untuk mengisi setiap nilai attribute. Misalnya untuk person yang memiliki attribute id dan name. Jika salah satu attribute tersebut tidak diisi maka kode kita akan error. Tapi, ada kebutuhan bahwa nilai attribute itu boleh diisi dan boleh tidak. Untuk kasus ini typescript menyediakan fitur optional. Cara menggunakannya adalah dengan menambahkan tanda tanya (?) pada attribute yang dimaksud. Berikut ini contohnya:
describe("Test Type Alias", function (){
it('should use object optional', () => {
let person: {id: number, name?: string} = {id: 1};
console.log(person);
});
});
Nah, pada contoh di atas person hanya diset untuk id saja sedangkan name-nya tidak diisi. Kode di atas tidak akan error karena kita sudah set attribute name-nya optional dengan menulis name?.
Penutup
Nah, demikianlah sedikit penjelasan tentang tipe data alias pada typescript. Semoga tulisan ini bermanfaat dan semoga kita bertemu lagi pada tulisanku berikutnya tentang typescript.