TypeScript 函数

这是我参与8月更文挑战的第12天,活动详情查看:8月更文挑战

1.函数声明

function student(x:string,y:number):string{
  return `我是${x},我今年${y}岁啦`
}
console.log(student('猪小屁',5))
复制代码

我们来看看跟javascript 有什么不一样呢

  • 指定了参数的类型(因为有类型检查,所以要遵循),确定了函数的返回值类型
  • 参数不可多不可少,只能刚刚好,且和顺序有关。

函数表达式

 let student:(x:string,y:number)=>string = function(name:string,age:number):string{
  return `我是${name},我今年${age}岁啦`
 }
复制代码
  • 前后参数名称可以不一致
  • 如果函数没有返回值 可以使用void

可选参数及默认参数

image.png

  function student(y:number,x:string='猪小屁'):string{
   return `我是${x},我今年${y}岁啦`
}
console.log(student(5))
复制代码
  • 可以看到,默认值的参数识别为可选参数,但不必在必需参数后面。
  • 虽说它是可选参数了耶不必放在必需参数后面了,但是一旦放在必需参数前面,就要明确写上undefined或者值,即不能空这。

可选参数

 function student(y:number,x:string='猪小屁',sex?:string):string{
   return `我是${x},我今年${y}岁啦`
}
console.log(student(9,undefined))
复制代码
  • 可选参数要放在必需参数后面

剩余参数

function student(y:number,x:string,...name:string[]):void{ 
    console.log(...name)
 }
 console.log(student(1,'猪小屁', '猪小美','虎大橘'))
复制代码
  • 剩余参数会被当做个数不限的可选参数,可以一个都没有,也可以有任意个。同样要放在必要参数后面。
  • 是数组类型,名字是省略号后面的字段名,可以在函数体内使用这个数组。

** 函数重载 **

  • java中方法的重载: 重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况
  • ts中的重载:通过为同一个函数提供多个函数类型定义来实现多种功能的目的。
  • ts为了兼容es5 es6 重载的写法和java中的有区别。
function getUserInfo(name:string):string;
function getUserInfo(name:number):number;

function getUserInfo(name:any):any{
  if (typeof name === 'string') {
    return '我叫'+ name;
  }else{
      return name;
  }
}
console.log(getUserInfo('猪小屁')); //=> 我叫猪小屁
console.log(getUserInfo(5));   //=> 我的年龄是5
//console.log(getUserInfo(true));//错误写法
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享