3.函数类型
函数类型
1.函数定义类型和返回值
function fn1():void {}
const fn1 = ():void => {}
function fn2(a: number, b: number): number {
return a + b;
}
const fn2 = (a: number, b: number): number => {
return a + b;
}
2.函数默认参数 | 函数可选参数(?)(可选参数必须跟在必须参数后面)| 剩余参数
function fn3(a: number = 20, b?: number): any {
// return a + b;
// 注意 可选参数在严格模式下会报错,b未定义
}
function fn4(str: string, ...restOfName: string[]): string {
return str + restOfName.join('');
}
let returnStr = fn4('hello', ' ', 'world');
3.函数的参数是一个对象
interface useObj {
name: string;
age: number;
}
function f4(user: useObj): useObj {
return user;
}
4. 函数的this类型
// ts中可以定义this的类型,必须是第一个参数定义this的类型
interface group {
user: number[];
add: (this: group, num: number) => void;
}
let userobj: group = {
user: [1, 2, 3],
add(this: group, num: number) {
this.user.push(num);
},
};
userobj.add(4);
console.log(userobj.user);
// 5.函数的重载
let userArr: number[] = [1, 2, 3];
function findNum(ids?: number | number[]): number[] {
if (Array.isArray(ids)) {
userArr.push(...ids);
return userArr;
} else if (typeof ids == 'number') {
return userArr.filter((item) => {
return item == ids;
});
} else {
return userArr;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!