1. 函数定义类型和返回值
function add(a:number, b:number):number {
return a + b
}
2. 函数默认参数和可选参数
function add(a:number = 10, b:number = 20):number {
return a + b
}
function add1(a: number = 10, b?: number): number {
return a + b
}
console.log(add1(1));
add(1)
3. 定义对象参数
interface User {
name: string,
age: number
}
function add(user: User):User {
return user
}
console.log(add({
name: 'zhangsan', age: 18}));
4. 函数 this 类型
interface Obj {
user: number[],
add: (this:Obj, num:number) => void
}
let obj: Obj = {
user: [1, 2],
add(this: Obj, num: number) {
this.user.push(num)
},
}
obj.add(4)
console.log(obj);
5. 函数重载
let user: number[] = [1, 2, 3, 4, 5]
function findNum(add: number[]): number[]
function findNum(id: number): number[]
function findNum(): number[]
function findNum(ids?: number | number[]): number[] {
if (typeof ids == 'number') {
return user.filter(v => v == ids)
} else if (Array.isArray(ids)) {
user.push(...ids)
return user
} else {
return user
}
}
console.log(findNum());
console.log(findNum(3));
console.log(findNum([2, 3, 4]));