Typed functions:
// Function declaration
function tambah(a: number, b: number): number {
return a + b;
}
// Arrow function
const kali = (a: number, b: number): number => a * b;
// Optional & default params
function sapa(nama: string, salam: string = "Halo"): string {
return `${salam}, ${nama}!`;
}
// Rest params
function jumlahkan(...angka: number[]): number {
return angka.reduce((sum, n) => sum + n, 0);
}
Function types:
type MathFn = (a: number, b: number) => number;
const divide: MathFn = (a, b) => a / b;
Callback types:
function prosesData(data: string[], callback: (item: string) => string): string[] {
return data.map(callback);
}