Ts的函数

1. 函数 匿名函数  void无返回值

function f1(): void {
  console.log(1);
}
let f2 = function (): void {
  console.log(1);
}; // 匿名函数

// type 定义类型别名
type F22 = (x: string, y: number) => string;
let f22: F22 = function (a, b) {
  return a + b;
};
let f222: F22 = function (a: string, b: number): string {
  return a + b;
};

type T1 = string | number;
function aa(msg: T1) {
  if (typeof msg === "number") {
    console.log("number");
  } else {
    console.log("string");
  }
}

2. 返回值

function f3(): number {
  return 123;
} // 表示number类型返回值 void就是无返回值

3. 传参 (要指定类型,每个参数)

function f4(a: number, b: string): string {
  return a + b;
}

console.log(f4(1, "2")); // 12 没有可选参数时,必须都传

4. 可选参数 用?表示 表示可以不传此参数,但是可选参数必须放到最后

function f5(a: number, b?: string): string {
  // 这边不能直接 return a + b; 因为b可能不存在
  if (b) {
    return a + b;
  } else {
    return a + "没有定义";
  }
}
console.log(f5(1)); // 1没有定义
console.log(f6(1, "666")); // 1666

5.默认参数

function f6(a: number, b: string = "默认"): string {
  return a + b; // 这里b就有了默认值
}
console.log(f6(1)); // 1默认
console.log(f6(1, "666")); // 1666

6.剩余参数 用的是...延展符

function f7(a: number, b: number, ...result: number[]): number {
  let sum = a + b;
  result.forEach((n) => {
    sum += n;
  });
  return sum;
}
console.log(f7(1, 2)); // 3
console.log(f7(1, 2, 3)); // 6  result= [3]
console.log(f7(1, 2, 3, 4, 5, 6)); // 21  // result= [3,4,5,6]

7.函数重构 方法名相同,参数类型或个数不同 ts的重构是没有方法体的

function f8(a: number): number;
function f8(b: string): string;
function f8(str: any): any {
  if (typeof str === "number") {
    return 123;
  } else {
    return "字符串";
  }
}
console.log(f8(1)); // 123 这里走的是第一个
console.log(f8("测试")); // 字符串 这里走的是第二个

// 参数不同的形式,最后any要兼容
function f9(a: number): number;
function f9(b: string, c: string): string;
function f9(str: any, d?: any): any {
  if (d) {
    return str + d;
  } else {
    return str;
  }
}
console.log(f9(1)); // 1 这里走的是第一个
console.log(f9("测试", "字符")); // 测试字符 这里走的是第二个

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值