3、TypeScript 函数

介绍

函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。

    //函数声明法
    function run(){
         return 'run';
    }
    //匿名函数
    var run2=function(){
        return 'run2';
    }

可选参数

  • 在 TypeScript 函数里,如果我们定义了参数,则我们必须传入这些参数,除非将这些参数设置为可选,可选参数使用问号标识 ?
  • 可选参数必须跟在必需参数后面。 如果下例我们想让 firstName 是可选的,lastName 必选,那么就要调整它们的位置,把 firstName 放在后面。如果都是可选参数就没关系。
    function  buildName(firstName:string, lastName?:string) {
      if  (lastName)  
        return  firstName + "  " + lastName; 
      else  
        return  firstName;
}
    buildName("Bob")
    buildName("Bob","Adams")

默认参数

  • 我们也可以设置参数的默认值,这样在调用函数的时候,如果不传入该参数的值,则使用默认参数,语法格式为:
function function_name(param1[:type],param2[:type]  = default_value)  {  }
  • 注意:参数不能同时设置为可选和默认。

剩余参数

  • 有一种情况,我们不知道要向函数传入多少个参数,这时候我们就可以使用剩余参数来定义。
  • 剩余参数语法允许我们将一个不确定数量的参数作为一个数组传入。
  • 以 ... 为前缀,事例代码:
    function  addNumbers(...nums:number[]) {
        var  i;
        var  sum:number  =  0;
        for(i  =  0;i<nums.length;i++) {
        sum  =  sum  +  nums[i];
        }
        console.log("和为:",sum)
    }
    addNumbers(1,2,3)
    addNumbers(10,10,10,10)

函数重载

  • 重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。
  • 每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
  • 参数类型不同:
  function disp(string):void;  
  function disp(number):void;
  • 参数数量不同:
  function disp(n1:number):void;  
  function disp(x:number,y:number):void;
  • 参数类型顺序不同:
  function disp(n1:number,s1:string):void;  
  function disp(s:string,n:number):void;
  • 如果参数类型不同,则参数类型应设置为 any
  • 参数数量不同你可以将不同的参数设置为可选。
原文地址:https://www.cnblogs.com/lived/p/10745963.html