为了账号安全,请及时绑定邮箱和手机立即绑定

通用类型“ReturnType”需要 1 个类型参数。ts(2314)

通用类型“ReturnType”需要 1 个类型参数。ts(2314)

鸿蒙传说 2022-01-20 18:24:25
我最近从 Flow 迁移到 Typescript,并且在转换一些代码库时遇到了几个错误,大多数都被 Utility-Types 包记录或替换,但是我找不到帮助我处理以下代码的文档或答案。const toObject = (keys: { reduce: (arg0: (object: any, key: any) => any, arg1: {}) => void }) =>  keys.reduce((object: any, key: string | number) => {    const o = object;    o[key] = undefined;    return object;  }, {});export type Pick<  Origin extends Record<string, any>,  Keys extends ReadonlyArray<keyof Origin>> = $ObjMapi<ReturnType<typeof toObject, Keys>, <Key>(k: Key) => $ElementType<Origin, Key>>;export type TypeOrVoid = <T>(arg0: T) => T | void;export type Diffable<O extends {}> = $ObjMap<O, TypeOrVoid>;更具体地说,Generic type 'ReturnType' requires 1 type argument(s).ts(2314)on的错误ReturnType<typeof toObject, Keys>如何在保留相同功能的同时减少 1 个类型参数?Flow 似乎没有替代品$Call。
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

ReturnType<T>只接受一个类型参数,即函数类型。在您的情况下,函数类型是typeof toObject. 整个 TypeScript 表达式将是ReturnType<typeof toObject>并且将解析为,any因为您返回的是 的结果,该结果是在您的代码reduce中键入的。any


查看完整回答
反对 回复 2022-01-20
  • 1 回答
  • 0 关注
  • 575 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号