首页 > 解决方案 > TypeScript:从类型化函数中提取泛型类型

问题描述

我正在将一个函数包装在 TypeScript 中的自定义函数中。为此,我想正确地传递类型。

我查看了类似的问题但他们似乎都回答了如何从类中提取而不是从函数中提取的问题。

我认为 en example 是最简单的解释:

// we have a given function like this:
function genericFunction<T extends object>(a: T) {
  return a;
}

// we want to extract the T type to pass it down for smth like this:

type ExtractedT = typeof genericFunction<IWANTTHEGENERICTYPE>; // (THIS IS WHERE I DON'T KNOW HOW TO PROCEED);

function myGenericFunction<T extends ExtractedT>(a: T, b: string) {
   console.log(b, "- is a newly introduced variable.")
   genericFunction<T>(a);
}

当然,这个例子是一个高度抽象的例子,但我的目标应该是明确的。

我很感激你的回答!

编辑:

我更新了这个例子,因为它以前没有真正的意义。我的目标是“动态地”从框架中包装一个方法,即(我复杂的用例也提取Parameters<>类型,但那是其他的。)

所以我想我的目标是有一种方法来检测函数的泛型类型并将它们复制到我自己的函数中。但我开始认为这会破坏 TypeScript 的范围,只是将鼠标悬停在泛型类型上并为包装函数导入/复制粘贴它们可能是更好的解决方案

标签: javascripttypescripttypes

解决方案


推荐阅读