NO3 Typescript 中函数的定义,传参等

124 阅读1分钟
// NO1 ts中函数的定义

    function fn():string {

        return 'run'

    }
 

    var fn2 = function():number {

        return 123

    }


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

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

    }

    // alert(fn3('张三', 20))


    // 没有返回值

    function fn4():void {

        alert('run')

    }

    // fn4()


// NO2 方法可选参数 在ts中,形参和实参必须一致,不一致则需要配置可选参数(?)

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

        return age ? `${name} -- ${age}` : `${name} -- 年龄保密`

    }

    // alert(fn5('张三'))

    // 注意: 可选参数必须配置到参数的最后面


// NO3 参数默认值

    function fn6(name:string, age:number=18):string {

        return age ? `${name} -- ${age}` : `${name} -- 年龄保密`

    }

    // alert(fn6('张三'))


// NO4 剩余参数

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

        var sum = 0

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

            sum+=result[i]

        }

        return sum

    }

    // alert(fn7(1,2,3,4,5,6))



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

        var sum = a

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

            sum+=result[i]

        }

        return sum

    }

    // alert(fn8(1,2,3,4))



// NO5 函数的重载(通过为同一个函数提供多个函数类型定义来试下多种功能的目的)

    function fn9(name:string):string;

    function fn9(age:number):string;

    function fn9(str:any):any{

        return typeof str === 'string' ? `我叫${str}` : `今年${str}`

    }

    // alert(fn9('张三'))

    // alert(fn9(20))



    function fn10(name:string):string;

    function fn10(name:string,age:number):string;

    function fn10(name:any,age?:any):any{

        return age ? `我叫${name},今年${age}` : `我叫${name}`

    }

    alert(fn10('张三'))

    alert(fn10('张三',28))



// NO6 箭头函数

    setTimeout(() => {

        alert('run')

    },100)