【发布时间】:2014-09-21 05:44:56
【问题描述】:
我正在尝试重载一个函数,因此当在其他地方使用该函数时,它会正确显示结果,即项目数组、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;
});
}
它给了我错误 “错误 TS2175:重载不能仅因返回类型而异。”。那么,我如何才能表明返回类型的多种可能性呢?
【问题讨论】: