函数---Ts

接口可以描述函数类型;为了使用接口表示函数类型,我们需要给接口定义一个调用签名。它就像是一个只有参数列表和返回值类型的函数定义。参数列表里面的每个参数都需要名称和类型。

函数形参必须声明数据类型 返回值可以不声明数据类型(根据函数体中的逻辑导出的)

一、为函数定义类型

// 可以不写返回值的类型,但是必须写参数的类型

function fn(n1:number,n2:any[],n3:string){

    return n1+n3

}

let a2=fn(100,[10,20],"30")

//加上返回值类型

function fn2(n1:number,n2:any[],n3:string):string{

    return n1+n2.length+n3

}

let a=fn2(100,[10,20],"30")//必须填写设定的类型,a的返回值就是一个string类型的

 

我们可以给每个参数添加类型之后再为函数本身添加返回值类型。 TypeScript能够根据返回语句自动推断出返回值类型,因此我们通常省略它

 

//声明式和定义式

// 定义式:

    let obj={fn:function(){}};

    let c=function(){};

    let arr=[function(){},10,"hello"];

    (function(n:number){})(100);

// 声明式:

function fm(n:number,n2:string){

    return n+n2.length

}

//区别:

    // 定义式:是在作用域内部被引用的function

    // 声明式:在作用域中声明function

 

二、可选参数和默认参数

    // 可选参数

    // 必选参数写在可选参数前面

    function fm1(n:number,n2:string,n3?:string):any[]{

        return [n2+n*100+n3?.length]

    }

    fm1(10,"111","23")

    // 可选默认

    function fm2(n:number,n2:string,n3:string="1111"):any[]{ //n3为可选默认

        return [n2+n*100+n3?.length]

    }

当然,还可以给参数设置默认值,在所有必选参数后面带默认值的参数都是可选的,与可选参数一样,在调用函数的时候可以省略。

ps:带默认值的参数不需要放在必选参数的后面。 如果带默认值的参数出现在必须参数前面,用户必须明确的传入 undefined值从而来获得默认值

三、剩余参数

// 剩余参数(...)===>必选参数

    function f2(n:number,n2:string,...res:any[]){

       

    }

    f2(100,"hello",20,[30,10])

    //可以规定剩余参数的类型    

    function f(n:number,n2:string,...res:[number,string]){

       

    }

    f(100,"hello",20,"111")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值