数据类型指定
// 普通函数声明
function add(n1:number,n2:number):number {return n1 + n2;
}
//箭头函数声明
const formatTen = (n1:number):number=>n1*10
函数默认值
注意函数默认值与可选形参冲突二者之可选其一
// 普通函数声明
function add(n1:number=10,n2:number=10):number {return n1 + n2;
}
//箭头函数声明
const formatTen = (n1:number=10):number=>n1*10
函数可选形参
注意可选形参与函数默认值冲突二者之可选其一
// 普通函数声明
function add(n1?:number=,n2?:number):number {return n1 + n2;
}
//箭头函数声明
const formatTen = (n1?:number):number=>n1*10
对象数据类型形参声明
interface man{age:number
}// 普通函数声明
function add(m1:man,m2:man):number {return m1.age + m2.age;
}
//箭头函数声明
const formatTen = (m1:man,):number=>m1.age>18?m1.age:18
函数中定义this的类型
第一个参数可以指定this的数据类型
interface Obj{age:number,add:(this:Obj)=>void
}
let obj:Obj = {age:17,add(this:Obj){this.age++;}
}
函数重载
let user:number[] =[1,2,3]
function fn(add:number[]):number[] // 新增
function fn(id:number):number[]// 查询
function fn():number[] // 查询全部
function fn(ids?:number|number[]):number[]{if (typeof ids==='number'){return user.filter(n=>n===ids)}else if (Array.isArray(ids)){user.push(...ids)return user}else{return user}
}console.log(fn([5,4,5,67,8,7,9,8]))// 新增
console.log(fn(548))// 查询单个
console.log(fn())// 查询全部