Function adalah sebuah block code dalam bahasa programan yang bisa di baca , di rubah dan digunakan berulang kali. Contoh sederhana penulisan function pada bahsa pemograman TypeScript :
//Example Function
function print(){
console.log('Hello World');
}
//Call function
print();
Function Types
Seperti halnya Javascript pada TypeScript memiliki beberapa tipe function diantaranya :
Function Void
Function dengan tipe void yaitu jenis function yang tidak memiliki nilai kembalian seperti berikut :
function print():void{
console.log('Hello World');
}
//Call function
print();
Function Return /Non Void
Function tipe ini adalah tipe function yang memiliki nilai kembalian baik type data primitive atau object seperti berikut :
function calculateNumber():number{
return 10 +10;
}
console.log(`10 + 10 = ${calculateNumber()}`)
Function Parameter
Function tipe ini adalah tipe function yang memiliki nilai parameter, Kita bisa membuat parameter baik dengan tipe data primitive maupun object, berikut contoh :
//Type return
function sumNumber(a:number, b:number):number{
return a+b;
}
console.log(`A + B = ${sumNumber(10,30)}`)
function message(message:string):string{
return message;
}
console.log(message('Learning function in TypeScript'))
Function Optional Parameter
Sama halnya dengan tipe parameter ,tipe ini juga bisa menerima parameter baik berupa tipe data primitive maupun object akan tetapi kita bisa membuat parameter bersifat optional yaitu dimana jika kita memiliki 2 parameter atau lebih namun ada parameter yang bersipat optional maka ketika function itu kita panggil, function tersebut dapat dijalankan dan compailer tidak akan melepar kesalahan. Contoh Function dengan Optional parameter :
//Optional param
function messageOptionalParam(message:string,age?:number):any{
return `Your message is ${message} and my age is ${age}`
}
console.log(messageOptionalParam("Learning TypeScript"))
Disini kita mebuat fucntion dengan 2 parameter akan tetapi hanya satu parameter yang kita masukan.
Function Default Parameter
Hampir sama dengan Function Optional Parameter, akan tetapi pada tipe Function Default Parameter, kita bisa memberikan nilai default pada parameter sehingga ketika parameter tersebut tidak menerima operan, maka dia akan mengunakan nilai default yang telah kita definisikan sebelumnya, Contoh seperti berikut :
function messageDefaultParam(message:string,age:number=20):any{
return `Your message is ${message} and my age is ${age}`
}
console.log(messageDefaultParam("Learning TypeScript"))
Function Argument Paramater
Function ini bisa menerima paramater dengan jumlah nol atau lebih paramater. Paramater argument berupa tipe data Array[] dan hanya memiliki satu argument. Contoh seperti berikut :
//Function args
function printFruits(...fruits: string[]){
fruits.forEach(fruit => {
console.log(`Fruit ${fruit}`)
});
};
console.log(printFruits('Apple','Banana','Mango','Orange'))
Function Overloading
Function Overloading adalah tipe function dimana pada TypeScript kita diperbolehkan membuat function dengan nama yang sama akan tetapi memilik parameter atau tipe return yang berbeda. Contoh seperti berikut:
// Function overloading
function add(a: number, b: number): number;
function add(a: string, b: string): string;
function add(a: any, b: any): any {
return a + b;
}
console.log(add(10,10))
console.log(add("Jhon ","Due"));
Semua tipe function di atas penulisan code dapat menggunakan arrow function seperti berikut :
//Arrow Function
const printName = (name:string)=>{
console.log(`Your name is ${name}`)
}
printName("Jhon Due");
Source code tutorial Typescript tersedia di github typescript-days