TypeScript -- 函数相关知识点梳理
如果函数定义四种方式,后三种只是函数类型的定义,并没有具体的实现,真正调用的时候,需要书写这个函数体function add0(x: number, y: number ) { return x + y}let add11: (x: number, y: number) => numbertype add2 = (x: number, y: number) => numberinterface add3 { (x: number, y: number): number}// add0(1,2,3) 参数必须对应,否则报错可选参数function add5(x: number, y?: number) { return y? x + y: x;}add5(1) //可选参数必须在必须参数之后默认参数function add6(x: number, y = 0, z: number, q = 1) { return x + y + z + q}console.log(add6(1,undefined,3))//5 在必须参数之前的默认参数需要用undefined来生效剩余参数function add7(x:number, ...rest:number[]) { return x + rest.reduce((pre, cur) => pre + cur)}console.log(add7(1, 2, 3, 4, 5)) //15函数重载(要把最容易匹配的写在最前面)function add8(...rest: number[]): numberfunction add8(...rest: string[]): stringfunction add8(...rest: any[]): any { let first = rest[0]; if (typeof first === 'string'){ return rest.join('') } if (typeof first === 'number') { return rest.reduce((pre, cur) => pre + cur) }}console.log(add8(1, 2, 3))// 6console.log(add8('a', 'b', 'c'))// abc
发表评论 (审核通过后显示评论):