# 函数声明
函数声明有两种方式:
- 通过function关键字来进行声明
- 通过表达式方式声明
// 通过 function 关键字声明
function sum1(a:number, b:number):number {
return a + b
}
// 通过表达式声明
const sum2 = (a:number, b:number):number => {
return a + b
}
// 如果是表达式形式的,我们给这个变量定义了类型,需要把一个兼容的函数赋值给它
type Sum = (a:number, b:number) => number
const sum3:Sum = (a, b) => {
return a + b
}
# 可选参数
可选参数必须在其他参数的最后面
// b? 表示b可以不传
const sum4 = (a: number, b?:number):number => {
// return a + b // Object is possibly 'undefined'
return a + (b as number)
}
# 默认参数
const sum5 = (a:number, b:number = 2):number => {
return a + b
}
# 剩余参数
const sum6 = (...args:number[]) => {}
sum6(1, 2, 3, 4)
# 函数重载
function toArray(value:number):number[]
function toArray(value:string):string[]
function toArray(value:number|string) {
if (typeof value === 'string') {
return value.split('')
}else {
return value.toString().split('').map(item=>parseInt(item))
}
}
// 根据传入不同类型的数据 返回不同的结果
toArray(123)
toArray('123')