typescript 知识序列(三)——函数

1、函数的定义

function go():string{

    return 'hhhhh'

}

console.log(go())//hhhhh

// 匿名函数

var fun1=function():number{

    return 15

}

console.log(fun1())//15

// ts中定义方法传参


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

    return ·${name}----${age}·

}

console.log(getInfo('zs',20))

2、方法可选函数

// es5中方法的实参和形参可以不一样,但是ts中必须一样,如果不一样需要配置可选参数

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

    if(age){

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

    }else{

        return ${name}----年龄保密

    }

}

console.log(getInfo1('zs'))//za----年龄保密

console.log(getInfo1('zs',40))//za----40

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

3、默认参数

在es5中不能设置默认参数,es6和ts中可以设置默认参数

function getInfo2(name:string,age:number=30):string{

    if(age){

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

    }else{

        return ${name}----年龄保密

    }

}

console.log(getInfo2('zs'))//za----30

console.log(getInfo2('zs',35))//za----35

4、剩余参数

// 三点运算符 接受形参传过来的值

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

    var sum=0;

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

        sum +=result[i]

    }

    return sum

}

console.log(sum1(1,2,3,4,5))//15

// 另一种写法

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

    var sum=a+b;

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

        sum +=result[i]

    }

    return sum

}

console.log(sum2(1,2,3,4,5,6))//21

5、函数的重载

ts中的重载:通过为痛一个函数提供多个函数类型定义来试下多种功能的目的

ts为了兼容es5和es6重载的写法和Java中有区别

es5出现同名的方法,最后的方法会替换前面相同名字的方法

function getMessage(name:string):string;

function getMessage(age:number):string;

function getMessage(str:any):any{

    if(typeof str=="string"){

        return '我叫'+str

    }else{

        return '我的年龄'+str

    }

}

console.log(getMessage('ls'))//我叫ls

console.log(getMessage(30))//我的年龄30

// 不同参数的

function getMessage1(name:string):string;

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

function getMessage1(name:string,age?:any):any{

    if(age){

        return 我的名字是${name},今年${age}}else{

        return 我的名字是${name},年龄保密

    }

}


console.log(getMessage1('pms'))

console.log(getMessage1('pms',18))

6、箭头函数 es6

setTimeout(() => {

    console.log(123)

}, 1000);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值