2、typescript函數的定義

函數的定義

 

一  、es5定義函數的兩種方法

1、函數聲明法

function run():string{

      return 'run';
}

2、匿名函數(函數表達式)

 var fun2=function():number{
     
    return 123;

 }

二  、ts中定義方法傳參

    function getInfo(name:string,age:number):string{

                return `${name} --- ${age}`;
        }


    alert(getInfo('zhangsan',20));

三 、沒有返回值的方法

    function run():void{

            console.log('run')

    }
      
    run();

四、 方法可選參數 

es5裏面方法的實參和行參可以不一樣,但是ts中必須一樣,如果不一樣就需要配置可選參數 

function getInfo(name:string,age?:number):string{

                if(age){

                    return `${name} --- ${age}`;
                }else{

                    return `${name} ---年齡保密`;
                }


        }

        alert(getInfo('zhangsan'))

        alert(getInfo('zhangsan',123))

注意:可選參數必須配置到參數的最後面

 //錯誤寫法
      /*
       function getInfo(name?:string,age:number):string{

                if(age){

                    return `${name} --- ${age}`;
                }else{

                    return `${name} ---年齡保密`;
                }
               

        }

        alert(getInfo('zhangsan'))
      */

五、默認參數 可選參數

es5裏面沒法設置默認參數,es6和ts中都可以設置默認參數

 function getInfo(name:string,age:number=20):string{

                            if(age){

                                return `${name} --- ${age}`;
                            }else{

                                return `${name} ---年齡保密`;
                            }
                        

                }

// alert( getInfo('張三'));
 alert( getInfo('張三',30));

六、剩餘參數

 function sum(a:number,b:number,c:number,d:number):number{

                return a+b+c+d;

            }


 alert(sum(1,2,3,4)) ;

七、三點運算符 接受新參傳過來的值

        function sum(...result:number[]):number{

                
                var sum=0;

                for(var i=0;i<result.length;i++){

                    sum+=result[i];  
                }

                return sum;

            }

            alert(sum(1,2,3,4,5,6)) ;




  function sum(a:number,b:number,...result:number[]):number{

                    
                var sum=a+b;

                for(var i=0;i<result.length;i++){

                    sum+=result[i];  
                }

                return sum;

            }
  alert(sum(1,2,3,4,5,6)) ;

八、函數重載

java中方法的重載:重載指的是兩個或者兩個以上同名函數,但它們的參數不一樣,這時會出現函數重載的情況

typescript中的重載:通過爲同一個函數提供多個函數類型定義來試下多種功能的目的

                function getInfo(name:string):string;
                function getInfo(name:string,age:number):string;
                function getInfo(name:any,age?:any):any{
                    if(age){

                        return '我叫:'+name+'我的年齡是'+age;
                    }else{

                        return '我叫:'+name;
                    }
                }

alert(getInfo('zhangsan'));  /*正確*/

alert(getInfo(123));  錯誤

alert(getInfo('zhangsan',20)); /*正確*/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章