Functions
Basic function
function add(x: number, y: number): number {
return x + y;
}
Arrow function
const multiply = (x: number, y: number): number => {
return x * y;
};
Optional parameters
function buildName(first: string, last?: string): string {
if (last) return `${first} ${last}`;
return first;
}
Default parameters
function createUser(name: string, role: string = "user") {
// ...
}
Rest parameters
function sum(...numbers: number[]): number {
return numbers.reduce((t, n) => t + n, 0);
}
Function overload definitions
function getValue(id: number): string;
function getValue(name: string): number;
function getValue(idOrName: number | string): string | number {
// Implementation
}
Function type expression
type MathOp = (x: number, y: number) => number;
const add: MathOp = (x, y) => x + y;
Async function
async function fetchUser(id: string): Promise<User> {
const res = await fetch(`/api/users/${id}`);
return res.json();
}
Generic function
function identity<T>(arg: T): T {
return arg;
}
Type guard (predicate)
function isString(val: unknown): val is string {
return typeof val === "string";
}