TypeScript应用 极速上手(5)

1、函数的定义及重载

//函数重载(不建议)
//仅仅声明一下函数,但是最终要提供一个函数实现
function add(a:number,b:number):number
function add(a:number,b:number,...e:number[]):number

function add(
    a:number,
    b:number,
    c?:number, //c为可选参数
    d:number=0, //参数d的默认值为0
    ...e:number[] //e可变参数列表且类型为number
    ):number {
    // if(c){
    //     return a+b+c
    // }else {
    //     return a+b
    // }

    //简要写法
    // return c ? a+b+c:a+b

   // return a+b+(c||0)+d
   let sum = a+b+(c||0)+d
   for(let i = 0; i < e.length; i++){
       sum +=e[i]
   }
    return sum
}

console.log(add(2,3))//5
console.log(add(2,3,4))//9
console.log(add(2,3,4,5))//14
console.log(add(1,2,3,4,5,6,7,8,9,10))//55

//传入的参数为number数组
const numbers = [5,6,7,8,9,10]
// 利用 ... 语法传入可变参数列表
console.log(add(1,2,3,4,...numbers))//55

2、对象类型作为参数

(1)解决参数数量过多的问题

(2)解决 bool参数的问题

(3)解决回调函数类型的问题

//对象类型作为参数
function sendRequest(params:{
    url:string,
    method:'GET'|'POST'|'PUT',
    header:object,
    data?:string,
    requireAuth:boolean,
    retry:boolean,
    retryTimeout?:number,
}){}

sendRequest({
    url:'https://www.baidu.com',
    method:'GET',
    header:{
        contentType:'application/json',
    },
    data:'{}',
    requireAuth:false,
    retry:true,
    retryTimeout:30000,
})

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamCatcher

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值