函数类型
描述函数形状最常用类型别名:type Fn = (n: number) => string。函数参数"可少传不可多传":可选参数用 ? 标记且必须放在必填参数之后,有默认值的参数自动可选。
函数重载让一个函数根据参数呈现不同签名:先写多条重载签名,再写一条宽松的实现。调用时编辑器按重载签名给精确提示,是处理"参数数量/类型不同、返回不同"的正道。
- 类型别名写函数最直观:type Fn = (a: number) => void
- 可选参数 param?: 类型 必须排在必填参数之后
- 重载 = 多条精确签名 + 一份宽松实现,提示更准确
TS
// 函数类型别名:参数类型可由上下文推断省略
type Formatter = (value: number) => string;
const fmt: Formatter = (v) => v.toFixed(2);
// 可选参数与默认值
function greet2(prefix: string, name = '_world') {
return prefix + name;
}
greet2('hello'); // ✓ name 有默认值,可省
// 重载:按入参区分返回类型
function parse(input: string): number[];
function parse(input: number): string[];
function parse(input: any) {
return String(input).split(',').map(Number);
}
const a = parse('1,2,3'); // number[]
const b = parse(123); // string[]JS
// 重载签名在编译时擦除,只留实现 const fmt = (v) => v.toFixed(2); console.log(fmt(3.1415)); // '3.14' function parse(input) { return String(input).split(',').map(Number); } console.log(parse('1,2,3')); // [1, 2, 3] console.log(parse(123)); // [123]
本节要点函数类型用 type 别名描述;可选参数靠 ? 或默认值;多形态用重载。




