函数是一种可执行的代码块,可以被重复调用,参数列表里面的每个参数都需要名称和恶类型
一、为函数定义类型
(1)可以给每隔形参添加类型后再为函数本身添加返回值类型
格式:为函数添加返回值类型
(2)函数的形参必须声明类型,不用写函数的返回值,因为TS根据函数执行体表达式退出函数的返回值类型
格式
function fn(n1:number,n2:string){
return true//返回值类型为布尔类型
}
(3)若声明函数返回类型是undefined、void、any,则不需要返回一个值。除三者外其他的函数必须返回一个值
声明函数返回值类型为number型(这里用number举例),则必须有返回值,且返回值类型必须为number型
声明函数返回类型为void(用void举例,另外两个是一样的),则可以没有返回值或者只写return不写返回值。不会报错
二、可选参数和默认参数
1.可选参数:是指在函数定义形参时可以选择性地省略某个参数:形参名后面添加“?”表示可选可不选。
2.默认参数:是指在函数定义形参时为该形参设置默认值(给该变量初始化)
格式:
20行中表示定义一个函数fn,形参n1的类型为number,n2是一个number型并给n2赋了一个默认值(没有给n2传递实参则用默认值3,若有实参则取实参的值),n3是一个number型,是可选可不选的形参,要用的时候再赋值,不用时可以忽略。
21行中n1、n2都是number型,相加也是number型,返回值类型符合
打印结果:13
若实参个数大于形参个数,则报错。形参必填项必须放在前面,可选项放在最后面
三、剩余参数(...)
含义:永远接受不定数量的参数,并将其放入一个数组中传递给函数,用点点点语法实现(...)。剩余参数中的参数指的是形参。
格式:
28:定义一个函数fn,形参n1的类型为number型,将剩余的参数装入名称为arr类型为数组中,且该数组只能放入number型的元素
若想要将所有剩余参数装入一个数组中,且元素类型是任意的,则,可以将数组的类型更改为any型
四、函数类型变量
含义:函数类型变量是指可以用来存储函数的类型的变量。它们可以用来定义函数类型的签名、作为函数的参数类型或返回值类型。
函数类型变量的语法使用箭头函数 =>
来表示函数类型。它描述了函数的参数列表和返回类型
这里声明了一个变量 a
,它被指定为一个函数类型,该函数接收两个参数 n1
和 n2
,两个参数的类型都是 number
,并且该函数返回值的类型也是 number
。等价于下面的写法
也可以写成:不写函数返回值类型,由执行体推断
第一个箭头左边:a4表示a4是一个函数,形参类型都为number型
第一个箭头右边第一个:该函数的返回值类型为number型
等号右边全部:a4成为一个具体函数,形参的类型都是number型,返回值类型为number型,花括号表示函数执行体
五、使用接口封装函数变量类型
含义:可以使用接口来封装函数类型,从而描述函数的参数和返回值类型
格式:
53:定义一个接口fn,描述了一个没有参数,返回值类型为number型的函数
54:无形参,返回的类型为number
56声明一个变量,将fn接口与fn变量连接起来
f1是f2的综合写法 75行:形参类型分别为number和string型,返回值类型是f2的类下(函数)