![](/img/trans.png)
[英]error TS2314: Generic type 'Promise<T>' requires 1 type argument(s)
[英]Generic type 'ReturnType' requires 1 type argument(s).ts(2314)
我最近從 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)
的錯誤Generic type 'ReturnType' requires 1 type argument(s).ts(2314)
on ReturnType<typeof toObject, Keys>
如何在保留相同功能的同時減少到 1 種類型的參數? Flow $Call
似乎沒有替代品。
ReturnType<T>
只接受一個類型參數,即函數類型。 在您的情況下,函數類型是typeof toObject
。 整個 TypeScript 表達式將是ReturnType<typeof toObject>
並且會解析為any
因為您返回的是reduce
的結果,該結果在您的代碼中被輸入為any
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.