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

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):