美文网首页
Ts中的函数

Ts中的函数

作者: 小溪流jun | 来源:发表于2021-09-27 20:18 被阅读0次
    
    /* 一、用数据类型对函数输入和输出进行约束*/
    function sum(x: number, y: number): number {
        return x + y
    }
    let mySum: (x: number, y: number) => number = function (x: number, y: number): number {
        return x + y
    }
    
    /*二、用接口的方式来定义一个函数需要符合的形状*/
    interface SearchFunc {
        (source: string, subString: string): boolean
    }
    let mySearch: SearchFunc
    mySearch = function (source: string, subString: string) {
        return source.search(subString) !== -1
    }
    
    /* 三、可选参数?*/  //可选参数后面不允许再出现必需参数了
    // function buildName(firstName: string, lastName?: string) {
    //  if (lastName) {
    //      return firstName + ' ' + lastName
    //  } else {
    //      return firstName
    //  }
    // }
    // let tomcat = buildName('Tom', 'Cat')
    // let tom = buildName('Tom')
    
    /* 四、参数默认值*/  //TypeScript会将添加了默认值的参数识别为可选参数:此时就不受「可选参数必须接在必需参数后面」的限制了
    function buildName(firstName: string, lastName: string = 'Cat') {
        return firstName + ' ' + lastName
    }
    let tomcat = buildName('Tom', 'Cat')
    let tom = buildName('Tom')
    
    /* 五、剩余参数 */  //ES6 中,可以使用 ...rest 的方式获取函数中的剩余参数(rest 参数) //rest 参数只能是最后一个参数,关于 rest 参数,可以参考 [ES6 中的 rest 参数][]。
    function push(array: any[], ...items: any[]) {
        items.forEach(function (item) {
            array.push(item)
        })
    }
    
    let a = []
    push(a, 1, 2, 3)
    
    /* 六、重载 */ //重载允许一个函数接受不同数量或类型的参数时,作出不同的处理
    // function reverse(x: number | string): number | string {
    //  if (typeof x === 'number') {
    //      return Number(x.toString().split('').reverse().join(''))
    //  } else if (typeof x === 'string') {
    //      return x.split('').reverse().join('')
    //  }
    // }
    
    function reverse(x: number): number //前几次都是函数定义,最后一次是函数实现
    function reverse(x: string): string
    function reverse(x: number | string): number | string {
      if (typeof x === 'number') {
      return Number(x.toString().split('').reverse().join(''))
      } else if (typeof x === 'string') {
      return x.split('').reverse().join('')
      }
    }
    
    
    
    

    相关文章

      网友评论

          本文标题:Ts中的函数

          本文链接:https://www.haomeiwen.com/subject/wleknltx.html