zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    主线程到子线程的相互切换
    IOS通过OTA部署App
    IOS应用之间调用
    静态库详解
    ObjectC的函数调用机制详解消息
    iOS6新特征:参考资料和示例汇总
    杭电acm2025
    杭电acm2051
    杭电acm1009
    杭电acm2099
  • 原文地址:https://www.cnblogs.com/queenDream/p/13817330.html
Copyright © 2011-2022 走看看