函数类型定义
基本定义
function add1(n1:number, n2:number):number{
return n1 + n2
}
let add2 = (n1:number, n2:number):number=>{
return n1+n2
}
函数参数
可选参数
在参数名的后面,加一个?,表示该参数可选,如果不传,那这个参数就是undefined
并且在实际使用中,要进行类型判断
function add(n1:number, n2?:number):number{
if (typeof n2 === "undefined"){
return n1
}
return n1 + (n2 as number)
}
// 要么不传,要么传正确的类型
add(1)
add(1, 2)
add(1, "3") // 报错
默认值
function add(n1:number, n2:number = 10):number{
return n1 + n2
}
console.log(add(1)) // 11
console.log(add(1, 2)) // 3
默认值和可选参数不能同时出现!
参数为接口类型
interface getUserListRequest {
page?:number
limit?:number
key?:string
name?:string
}
function getUserList(params:getUserListRequest){
console.log(params.limit) // 有类型提示
}
函数重载
function addFn(n1:number, n2:number):number
function addFn(n1:number):number
function addFn(n1:number, n2:number = 10):number{
return n1 + n2
}
console.log(addFn(1))
console.log(addFn(1, 20))