// Explicit parameter types and return type:
function calculateTimeout(retries: number, baseTimeout: number = 5000): number {
return baseTimeout * (retries + 1);
}// Optional parameter (?):
function logResult(testName: string, durationMs?: number): void {
if (durationMs !== undefined) {
console.log(${testName} finished in ${durationMs}ms);
} else {
console.log(${testName} finished);
}
}
// Async function return signature: always Promise<T>
async function fetchToken(apiUrl: string): Promise<string> {
return "auth_token_xyz";
}