函数定义类型和返回值 | 箭头函数定义类型和返回值
函数默认的参数 | 函数可选参数
参数是一个对象如何定义
function pdd(a:number,b:number):number{
return a+b
}
console.log(pdd(2,5))
// 箭头函数
const fn = (n:number,m:number):number => n+m
console.log(fn(1,1))
interface User{
name:string
age:number
}
function add(user:User):User{
return user
}
console.log(add({name:'大白',age:20}))
函数 this 类型
interface Obj{
user:number[]
add:(this:Obj,num:number)=>void
}
//在 ts 中可以定义this 的类型,但是在js中是无法使用的 必须是第一个函数定义this 的类型
let obj:Obj ={
user:[1,2.3],
// 传参的时候忽略下面这个 this
add(this:Obj,num:number){
this.user.push(num)
},
}
obj.add(4)
console.log(obj) // 打印结果 { user: [ 1, 2.3, 4 ], add: [Function: add] } 可以发现已经把 4 添加进去了
函数重载
// 函数重载
let unit:number[] = [1,2,3]
// 如果传的是一个number类型的数组那就是做添加
function finNum(add:number[]):number[]
// 如果传入了id 就是单个查询
function finNum(id:number):number[]
// 如果没有传入东西就是查询全部
function finNum():number[]
function finNum(ids?:number | number[]):number[]{
if (typeof ids ==='number'){
return unit.filter(t=>t ===ids)
}
else if (Array.isArray(ids)){
unit.push(...ids)
return unit
}
else {
return unit
}
}
console.log(finNum([4,5,6]))
更多内容请关注公众号:不懂web的小v