Functions & Parameters
Functions are the primary build blocks in TypeScript. Type annotations ensure parameter values and return values strictly conform to expected contracts.
1. Function Annotations & Return Types
// Named Function with Return Type Annotation
function calculateTotal(price: number, tax: number): number {
return price + (price * tax);
}
// Arrow Function Signature
const multiply = (x: number, y: number): number => x * y;2. Optional & Default Parameters
Optional parameters must be placed after required parameters:
// Optional Parameter (greeting?)
function greetUser(name: string, greeting?: string): string {
if (greeting) {
return `${greeting}, ${name}!`;
}
return `Hello, ${name}!`;
}
// Default Parameter (role = "Guest")
function createUser(username: string, role: string = "Guest") {
return { username, role };
}3. Rest Parameters (`...args`)
function sumNumbers(...numbers: number[]): number {
return numbers.reduce((acc, curr) => acc + curr, 0);
}
console.log(sumNumbers(10, 20, 30, 40)); // Output: 1004. Function Overloading
Function overloading allows a single function to handle different parameter types and return corresponding types:
// 1. Overload Signatures
function combine(a: string, b: string): string;
function combine(a: number, b: number): number;
// 2. Implementation Signature
function combine(a: any, b: any): any {
return a + b;
}
const strResult = combine("Hello ", "World"); // Returns string
const numResult = combine(50, 100); // Returns numberNext Up
Learn Union & Intersection types, discriminated unions, and exhaustiveness checking.
Next Lesson: Union & Intersection Types →