TypeScript---函式

Alex_Peng發表於2020-01-02

函式的定義有兩種方式

1. 函式的定義
複製程式碼
    function hello(name:string,age:number):string{
        return name + age;
    }
複製程式碼
2.函式表示式
複製程式碼
    type GetFunction = (x:string,y:string) => string;
    let getUsername:GetFunction = function(firstName:string,lastName:string):string{
        return firstName+lastName;
    }
複製程式碼

函式的特性

1.可選引數
複製程式碼
    function print(name:string,age?:number):void{
        console.log(name,age)
    }
複製程式碼
2.預設引數
複製程式碼
    function ajax(url:string,method:number='Get'):void{
        console.log(url,method)
    }
    ajax('/user'); //user Get
複製程式碼
3.剩餘引數
複製程式碼
    function sum(...numbers:number[]){
    console.log(numbers); //[ 1, 2, 3, 4 ]
}
    sum(1,2,3,4);
複製程式碼

函式的過載

在java裡,過載指的是兩個函式,方法名是一樣的,但是引數數量或者型別不一樣

在ts裡,僅僅指是為一個函式提供多個函式定義

    let obj = {name:'pengsitao',age:10};
    function attr(val:string):void;
    function attr(val:number):void;
    //如果沒有以上兩句attr函式可以接受任何型別的引數,但是加上如上兩句,函式只能接受string 和 number型別的引數
    function attr(val:any){
        if(typeof val === 'string'){
            obj.name = val;
        }else if(typeof val ==='number'){
        obj.age = val;
        }
    }
    attr('kwj');
    attr(20);
    console.log(obj)
複製程式碼

相關文章