【发布时间】:2021-04-25 06:19:18
【问题描述】:
我们有 GetInnerType 类型,它为每个扩展 Foo 类的类型返回泛型类型参数:
class Foo<T> {}
type GetInnerType<X> = X extends Foo<infer I> ? I : never;
我们能否抽象出GetInnerType 使其适用于任何泛型类?
GetInnerType 的新版本应如下所示:
class Bar<T>{}
let v1 = new Foo<number>();
let v2 = new Bar<{a: string}>();
type t1 = GetInnerType<typeof v1>; // is number
type t2 = GetInnerType<typeof v2>; // is {a: string}
【问题讨论】:
-
谢谢。您链接的问题是相关的,但没有回答我的问题。如何在无需创建更多类型的情况下为任何类型执行此操作?
-
你没有。我已经链接了这个问题,因为有评论者要求同样的事情,结论是目前不可能。
-
这个特性被称为高级类型。它在 TypeScript 中不可用
标签: typescript generic-type-parameters