函数类型
//函数类型
const fn = (name:string,age:number):string =>{
return name+age
}
//可选操作符
const fn2 = (name:string,age?:number):string =>{
return name+age
}
//参数默认值
const fn3 = (name:string,age:number = 18):string =>{
return name+age
}
let girl = fn('小芳',18)
console.log(girl) //小芳18
let girl2 = fn2('小芳')
console.log(girl2) //小芳undefined
let girl3 = fn3('小芳')
console.log(girl3) //小芳18
interface约束
interface User {
name:string,
age:number
}
const setUser = (user:User):User => {
return user
}
let woman = setUser({
name:'小芳',
age:20
})
console.log(woman) //{ name: '小芳', age: 20 }
函数重载
定义:重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。如果参数类型不同,则参数类型应设置为 any。参数数量不同你可以将不同的参数设置为可选。
//定义重载函数
function add (params:number):void
//定义重载函数 第二套规则
function add (params:string,params2:number):void
//实现重载函数 逻辑代码块
function add (params:any,params2?:any):void{
console.log(params)
console.log(params2)
}
let result = add(2) //2 undefined
let result2 = add("xiaofang",18)//xiaofang 18 会自动判断遵循哪一套规则