3.函数类型

函数类型

1.函数定义类型和返回值

function fn1():void {}
const fn1 = ():void => {}
function fn2(a: number, b: number): number {
  return a + b;
}
const fn2 = (a: number, b: number): number => {
  return a + b;
}

2.函数默认参数 | 函数可选参数(?)(可选参数必须跟在必须参数后面)| 剩余参数

function fn3(a: number = 20, b?: number): any {
  // return a + b;
  // 注意 可选参数在严格模式下会报错,b未定义
}
function fn4(str: string, ...restOfName: string[]): string {
  return str + restOfName.join('');
}
let returnStr = fn4('hello', ' ', 'world');

3.函数的参数是一个对象

interface useObj {
  name: string;
  age: number;
}
function f4(user: useObj): useObj {
  return user;
}

4. 函数的this类型

// ts中可以定义this的类型,必须是第一个参数定义this的类型
interface group {
  user: number[];
  add: (this: group, num: number) => void;
}
let userobj: group = {
  user: [1, 2, 3],
  add(this: group, num: number) {
    this.user.push(num);
  },
};
userobj.add(4);
console.log(userobj.user);

// 5.函数的重载

let userArr: number[] = [1, 2, 3];
function findNum(ids?: number | number[]): number[] {
  if (Array.isArray(ids)) {
    userArr.push(...ids);
    return userArr;
  } else if (typeof ids == 'number') {
    return userArr.filter((item) => {
      return item == ids;
    });
  } else {
    return userArr;
  }
}

posted on   前端自信逐梦者  阅读(9)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示