// 基础使用和箭头函数
// function add(a:number, b:number):number {
// return a+b
// }
// const muti = (a:number, b:number):number => a*b
// 参数默认传值、函数可选参数
// const add = (a:number = 10, b?:number):number => {
// return a
// }
// 参数是对象形式时使用interface
// interface user {
// name: string,
// age: number
// }
// const getUser = (user:user):user => {
// return user
// }
// getUser({name:'gg', age:11})
// 通过this可以获取interface定义的属性
// interface objInterface {
// arr: number[],
// cb: (num:number)=> void
// }
// const obj:objInterface = {
// arr: [1,2],
// cb(num) {
// this.arr.push(num)
// }
// }
// obj.cb(5)
// 函数重载, 做了一个不传参数则返回所有,传数字则查询对应值,传数组则返回拼接数组
const user:number[] = [1,2,3]
function find():number[]
function find(id:number):number[]
function find(arr:number[]):number[]
function find(ids?:number | number[]):number[] {
if (typeof ids === 'number') {
return user.filter(item => ids === item)
} else if (Array.isArray(ids)) {
return [...user, ...ids]
} else {
return user
}
}