// 参数默认值和可选值
function fn1(name: string, age?: number): string {// 那么name必传,age选传,返回为字符串return `${name}${age}`;
};
fn1("全易");
fn1("全易", 18);
// fn1("全易", 18, "在北京") // 报错// 剩余参数处理
function fn2(name: string, ...args: (string | number)[]) {// 那么name必传。剩余参数放入args集合并规定其他参数为字符串或数字。不指定返回数据console.log(args);// do something
};
fn2("全易", 18, "在北京");// this指定(只能是void)
function fn3(this: void, name: string) {console.log(this);// do something
}
fn3("全易") // 虽然形参第一位是this参数,但在实参传入时不占位。// 函数重载(就是不指定返回什么类型)
function fn4(name: string, age: number);
function fn4(name: string, age: string);
// 通过以规定参数类型进行重载,age既可以是数字也可以是字符串
function fn4(name: string, age: string | number): number | string {return 123// return "123"// 这种应用场景并不高,一般都用泛型实现
};