TypeScript函数

发布时间 2023-06-22 15:57:09作者: 有只小菜猫

1. ts函数定义
        // es5函数声明
        function run3(){
            return 'run'
        }

        // es5匿名函数
        var run4 = function(){
            return 'run'
        }

        // ts函数声明
        function run5():string{
            return 'run'
        }
        // ts匿名函数
        var run6 = function():number{
            return 123
        }

        // ts中定义方法传参
        function getInfo(name:string,age:number):string{
            return 'info'+`$(name)---$(age)`
        }
        var getInfo1 = function(name:string,age:number):string{
            return 'info'+`$(name)---$(age)`
        }
        // 没有返回值的方法
        function getInfo2():void{
            console.log(123)
        }


2.方法可选参数,在参数后面加?变为可选参数,可选参数必须配置到参数的最后面

 function getInfo3(name:string,age?:number):string{
        if(age){
            return 'info'+`$(name)---$(age)`
        }else{
            return 'info'+`$(name)---年龄保密`
        }
    }

3.默认参数 es6和ts都可以设置默认参数

function getInfo4(name:string,age:number=20):string{
        if(age){
            return 'info'+`$(name)---$(age)`
        }else{
            return 'info'+`$(name)---年龄保密`
        }
    }
    getInfo4('张三',30)


4.剩余参数

function sum(a:number,b:number,c:number):number{
        return a+b+c
    }
    sum(1,2,3)
    // 三点运算符接收传过来的值
    function sum1(...result:number[]):number{
        var sum = 0
        for(var i=0;i<result.length;i++){
            sum += result[i]
        }
        return sum
    }
    sum1(1,2,3)

    function sum2(a:number,...result:number[]):number{
        var sum = 0
        for(var i=0;i<result.length;i++){
            sum += result[i]
        }
        return a + sum
    }
    sum1(1,2,3)


5.函数重载

// java重载是指两个或两个以上同名函数,但是函数参数不同,这时候会出现函数重载的情况
    // ts重载是指通过一个函数提供多个函数定义来试下多种功能的目的
    function getInfo5(name:string):string
    function getInfo5(age:number):number
    function getInfo5(str:any):any{
        if(typeof str == 'string'){
            return str
        }else{
            return str
        }
    }
    alert(getInfo5(123))
    // 方法重载可以和函数选择传参一起用

6.箭头函数

setTimeout(function(){
        alert('run')
    },1000)
    setTimeout(()=>{
        alert('run')
    },1000)