zoukankan      html  css  js  c++  java
  • 009--函数(基本实例和函数类型)

    基本函数

    function  add(x, y) {
      return x + y
    }
    
    let myAdd = function(x, y) {
      return x + y
    }
    
    let z = 100
    function addToZ(x, y) {
      return x + y + z
    }

     给刚才的函数添加完整的函数类型

    //给刚才的函数添加类型
    function  add(x: number, y: number): number {
      return x + y
    }
    //给函数添加完整的函数类型
    let myAdd:(baseValue: number, increment: number)=> number = function(x: number, y: number): number {
      return x + y
    }

    函数类型推断

    //给函数添加完整的函数类型
    let myAdd:(baseValue: number, increment: number)=> number = function(x: number, y: number): number {
      return x + y
    }
    //上述函数可以拆分成下面两种
    // let myAdd = function(x: number, y: number): number {
    //   return x + y
    // }
    // let myAdd:(baseValue: number, increment: number)=> number = function(x, y) {
    //   return x + y
    // }
    //都会根据类型推断来推断出参数类型和返回值类型

    可选参数

    //在TypeScript中的参数只要定义了就是必须的,js中默认都是可选的
    function bulidName(firstName: string, lastName: string): string {
      return firstName + '' + lastName 
    }
    
    // let result1 = bulidName('Bob')//报错,只传了一个参数
    // let result2 = bulidName('Bob', 'Jack', 'Lisa')//报错,传入了三个参数
    let result3 = bulidName('Bob', 'Jack')
    //改造一下,让第二个参数可选
    function bulidName(firstName: string, lastName?: string): string {
      if(lastName) {
      return firstName + '' + lastName 
      }else {
        return firstName
      }
    }
    let result = bulidName('Bob')
    //可选参数,必须跟在必须参数的后面 

    函数默认值

    //函数默认值
    function bulidName(firstName: string, lastName = 'Smith'): string {
      return firstName + '' + lastName 
    }
    
    let result = bulidName('Bob')
    console.log(result)//BobSmith
    //函数默认值
    function bulidName(firstName = 'Bob', lastName: string ): string {
      return firstName + '' + lastName 
    }
    
    let result = bulidName('Jack', 'smith')
    let result1 = bulidName(undefined, 'Jons')
    console.log(result)//Jacksmith
    console.log(result1)//BobJons
    //如果想把默认参数放在前面,使用函数默认值的值的话则在函数调用时一定要在相应位置传入undefined

    剩余参数

    function bulidName(firstName = 'Bob', ...restOfName: string[] ): string {
      return firstName + '' + restOfName
    }
    
    let result = bulidName('Jack', 'smith')
    let result1 = bulidName(undefined, 'Jons')
    let result3 = bulidName('Jack', 'smith', 'Niclos')
    console.log(result)//Jacksmith
    console.log(result1)//BobJons
    console.log(result3)//Jacksmith,Niclos
    //如果想把默认参数放在前面,使用函数默认值的值的话则在函数调用时一定要在相应位置传入undefined

    剩余参数编译后

    function bulidName(firstName) {
        if (firstName === void 0) { firstName = 'Bob'; }
        var restOfName = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            restOfName[_i - 1] = arguments[_i];
        }
        return firstName + '' + restOfName;
    }
    var result = bulidName('Jack', 'smith');
    var result1 = bulidName(undefined, 'Jons');
    var result3 = bulidName('Jack', 'smith', 'Niclos');
    console.log(result); //Jacksmith
    console.log(result1); //BobJons
    console.log(result3);

    带有剩余参数的函数定义

    function bulidName(firstName = 'Bob', ...restOfName: string[] ): string {
      return firstName + '' + restOfName
    }
    //带有剩余参数的函数定义
    let bulidNameFn: (fname: string, ...rest: string[]) => string = bulidName

    2019-05-28  11:38:16

    工欲善其事,必先利其器
  • 相关阅读:
    关于跨域策略文件crossdomain.xml文件
    fl.motion SDK包下载,可用来设置显示对象的连读、饱和度、色调、对比度
    ActionScript工程如何使用Flash CS的fl包中的UI组件(转)
    无法将 flash.display::BitmapData 转换为 flash.display.Bitmap
    服务器托管
    男人会为女人改变多少
    AS3组件之Slider滑块拖动条
    jQuery验证使用
    十进制、十六进制、二进制习题
    jQuery层次选择器
  • 原文地址:https://www.cnblogs.com/ccbest/p/10936259.html
Copyright © 2011-2022 走看看