📘 TypeScript
الدوال في TypeScript
Typed Function Parameters
function add(a: number, b: number): number {
return a + b;
}
const greet = (name: string): string => {
return `Hello, ${name}!`;
};
// Implicit return type (inferred)
const square = (x: number) => x * x;
Optional and Default Parameters
function greet(name: string, greeting?: string): string {
return `${greeting ?? "Hello"}, ${name}!`;
}
console.log(greet("Alice")); // Hello, Alice!
console.log(greet("Bob", "Hi")); // Hi, Bob!
function createUser(name: string, role: string = "user") {
return { name, role };
}
Function Types
type MathOp = (a: number, b: number) => number;
const add: MathOp = (a, b) => a + b;
const multiply: MathOp = (a, b) => a * b;
function applyOp(a: number, b: number, op: MathOp): number {
return op(a, b);
}
console.log(applyOp(3, 4, multiply)); // 12
Rest Parameters
function sum(...numbers: number[]): number {
return numbers.reduce((acc, n) => acc + n, 0);
}
console.log(sum(1, 2, 3, 4, 5)); // 15
Generic Functions
function identity(value: T): T {
return value;
}
function first(arr: T[]): T | undefined {
return arr[0];
}
console.log(identity("hello")); // hello
console.log(first([10, 20, 30])); // 10
console.log(first(["a", "b", "c"])); // a