TypeScript---函数

117 阅读1分钟

函数的定义有两种方式

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)