我正在尝试重载一个函数,因此在其他地方使用该函数时,它将正确显示结果,即项目数组、void 或单个项目:
getSelected(type): void;
getSelected(type): IDataItem;
getSelected(type): IDataItem[];
getSelected(type:string, one:boolean = true):any {
if (!type) {
return;
}
if (one) {
return _.reduce<IDataItem, IDataItem>(sections[type], (current: IDataItem, p: IDataItem) => {
return p.selected === true ? p : current;
}, void 0);
}
return _.filter<IDataItem>(sections[type], (p: IDataItem):boolean => {
return p.selected === true && p.enabled === true;
});
}
Run Code Online (Sandbox Code Playgroud)
它给了我错误“错误 TS2175:重载不能仅因返回类型而异。” . 那么,我如何才能表明返回类型的多种可能性呢?