ts基础 函数定义

二.ts函数定义

1.函数声明法:

funtion a():number{
   return 123
}
funtion a():string{
   return '123'
}
funtion a():boolean{
   return true
}
funtion a():void{
   
}

funtion a():boolean{
   return 123  //报错 类型和返回不一样
}

2.匿名函数法:

var a = function():number{
  return 123
}

3.定义方法传参

function a(str:string,num:number):string{
  return `${str} --- ${num}`
}
a('我今年',20)  //我今年 --- 20

4.可选参数法:参数可传可不传,注意可选参数最好放在最后面

function a(str:string,num?:number):string{
  if(num){
     return `${str} --- ${num}`
  }else {
     return `${str} --- 无num`
  }
}
a('我今年',20)  //我今年 --- 20
a('我今年')  //我今年 --- 无num

5.默认参数

function a(str:string,num:number = 20):string{
  return `${str} --- ${num}`
}

a('我今年')  //我今年 --- 20
a('我今年',30)  //我今年 --- 30

6.剩余参数:不确定传多少个参数

function sum1(a:number,b:number,c:number,c:number):number{
  return a+b+c+d
}
sum1(1,2,3,4)  //10

function sum(...all:number[]):number{
  let su = 0;
  for(let i = 0;a<all.length;a++){
    su+=all[i]
  }
  return su
}

function sum(a...all:number[]):number{
  let su = a;
  for(let i = 0;i<all.length;i++){
    su+=all[i]
  }
  return su
}

7.函数重载:通过为同一个函数提供多个函数类型定义来实现多个功能的目的

function c(name:string):string;
function c(age:number):number;

function c(s:any):any{
   if(typeof s === string){
      return `1 --- ${s}`
   }else{
      return `2 --- ${s}`
}
};
c(
333) // 2 --- 333
c('q') // 1 --- q c(true) // 报错

说明:c函数虽然是any类型,但是上面c定义了string和number,就不能完全为any类型,只能是定义好的类型

8.箭头函数: this指向上下文

setTimeout(()=>{
  console.log('run')
},1000)
原文地址:https://www.cnblogs.com/queenDream/p/13817330.html