Typescript 有没有办法从接口属性中提取数组类型的泛型类型?
假设我有这样的东西。Typescript 有没有办法从接口属性中提取数组类型的泛型类型?,typescript,Typescript,假设我有这样的东西。 我想从A中的objects属性中提取number | string部分,并在B中重用它 接口A{ 对象:数组 } 接口B{ //我想从“A”接口的对象中提取这个部分 对象:数字|字符串 } 我能想到这样的事情 类型ObjectType=number |字符串 接口A{ 对象:数组 } 接口B{ 对象:对象类型 } 但我真正想要的是这样的东西 接口A{ 对象:数组 } 接口B{ //我在编这个,但是打字稿里有类似的东西吗?? 对象:ExtractType } 您可以
我想从
A
中的objects属性中提取number | string
部分,并在B
中重用它
接口A{
对象:数组
}
接口B{
//我想从“A”接口的对象中提取这个部分
对象:数字|字符串
}
我能想到这样的事情
类型ObjectType=number |字符串
接口A{
对象:数组
}
接口B{
对象:对象类型
}
但我真正想要的是这样的东西
接口A{
对象:数组
}
接口B{
//我在编这个,但是打字稿里有类似的东西吗??
对象:ExtractType
}
您可以通过以下帮助推断数组的项目类型:
类型ArrayItemType
type ArrayItemType<T extends Array<any>> = T extends Array<infer I> ? I : any
interface A {
objects: Array<number | string>
}
interface B{
// (property) B.object: string | number
object: ArrayItemType<A["objects"]>
}