固定参数
const fn = function (name: string, age: number): string { return name + age } let f = fn1('盲仔',12) // 盲仔 12
默认值
- 语法
- 参数 : 类型 = 默认值
const fn = function (name: string, age: number = 80): string { return name + age } let f = fn1('盲仔') // 盲仔 80
可选值
- 语法
- 参数 ?: 类型
const fn1 = function (name: string, age?: number): string { return name + age } let f = fn1('妖姬') // 妖姬 undefined
通过 interface 来约束
interface Person { name: string age: number } const fn = function (p: Person): Person { return p } let p1 = fn({ name: '瑞雯', age: 20, }) console.log(p1) // { name: '瑞雯', age: 20 }
函数重载
- 方法名相同 参数不同 返回类型也可以不相同
function fn(p: number): void // 第一套规则 function fn(p: string, p2: boolean): void // 第二套规则 function fn(p: any, p2?: any): any { console.log(p, p2) } fn(2) // 2 undefined fn('瑞雯', true) // 瑞雯 true