假设我有这样的类型React.ComponentClass<Props>
我想参考Props
部分,但在我当前的上下文中它是未命名的。
为了显示:
const x = makeComponent(); // typeof x = React.ComponentClass<Something>
在这种情况下,我可以使用typeof x
但这并没有直接给我
访问Something
type.
我想要的是这样的:
type GetPropsType<C extends React.ComponentClass<P>> = P
这样我就可以提取Something
与类型GetPropsType<typeof x>
任何同等的东西都会很棒。
您可以使用推断:
type TypeWithGeneric<T> = T[]
type extractGeneric<Type> = Type extends TypeWithGeneric<infer X> ? X : never
type extracted = extractGeneric<TypeWithGeneric<number>>
// extracted === number
操场 http://www.typescriptlang.org/play/#src=type%20TypeWithGeneric%3CT%3E%20%3D%20T%5B%5D%0D%0Atype%20extractGeneric%3CType%3E%20%3D%20Type%20extends%20Array%3Cinfer%20X%3E%20%3F%20X%20%3A%20null%0D%0A%20%20%20%20%0D%0Atype%20extracted%20%3D%20extractGeneric%3CTypeWithGeneric%3Cnumber%3E%3E%0D%0A%2F%2F%20extracted%20%3D%3D%3D%20number%0D%0A%0D%0A%0D%0A
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)