相关疑难解决方法(0)

重载不能仅因返回类型而异

我正在尝试重载一个函数,因此在其他地方使用该函数时,它将正确显示结果,即项目数组、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:重载不能仅因返回类型而异。” . 那么,我如何才能表明返回类型的多种可能性呢?

overloading typescript

4
推荐指数
1
解决办法
2846
查看次数

标签 统计

overloading ×1

typescript ×1