未使用函数重载前,多返回类型
function getData(ID?: string | string[]): DataType | DataType[] | undefined {
if (Array.isArray(ID)) {
return [
{
name: "111",
age: 22,
},
];
}
if (!ID) return;
return {
name: "111",
age: 22,
};
}
c类型为多类型,下面直接使用还需要使用
as , 不太友好
function getData(ID: string): DataType;
function getData(ID: string[]): DataType[];
function getData(ID?: string): undefined;
function getData(ID) {
if (Array.isArray(ID)) {
return [
{
name: "111",
age: 22,
},
];
}
if (!ID) return;
return {
name: "111",
age: 22,
};
}
实现函数重载后,调用该方法则会有对应提示,上下进行切换
当传递参数为 字符串 时,返回结果
当传递参数为 数组 时,返回结果
当 未传递 参数时,返回结果
当遇见参数多类型且返回结果多类型的函数时,则应该使用函数重载,方便后续操作,就不需要加判断或者 as