打字稿从模块中提取返回类型

时间:2019-10-16 07:19:17

标签: typescript

有一个实用程序ReturnType,可以提取函数的返回类型。 想知道是否有一种方法可以从函数的记录(字典)中提取返回类型,例如:

const list = {
  function1: (a: string, b: B) => ({ a, b }),
  function2: (c: string, d: D) => ({ c, d }),
  ...
}

type FunctionReturnList = ExtractReturnTypes<list>

ExtractReturnTypes是什么(如果可能)?

2 个答案:

答案 0 :(得分:1)

要提取list字典的值,您可以定义类似于ValueOf的{​​{1}}查找类型:

keyof

type ValueOf<T> = T[keyof T]; 值上使用它会产生所有功能的并集:

list

要最终获得这些函数的所有返回类型的并集类型,请使用ReturnType<T>实用程序:

type Functions = ValueOf<typeof list>;

看看这个运动场demo,看看它的作用。

答案 1 :(得分:0)

这只是部分答案。您可以使用ReturnType utility type

提取函数的返回类型
type Function1 = ReturnType<typeof list.function1>

有什么理由将它们存储在这样的列表中?

注意::在您的示例中,list实际上不是列表,而是recorddictionary