typescript - 从 Array<T> 获取类型
我有一个自动生成的类型,
export type ReferralListByCustomerQuery = { referralListByCustomer?: Array<{ code: string, referredByID: string } | undefined> | undefined };
但是我需要一种数组的项类型:
type WhatINeed = { code: string, referredByID: string } | undefined所以,我知道如何提取数组类型:
type IncludingArray = ReferralListByCustomerQuery[referralListByCustomer]但问题是如何提取数组项。谷歌后:
type OnlyItem =IncludingArray[number] 不起作用
答案#1
这与 T[number] 相同,但你也可以这样提取:
type ElementOf<T> = T extends Array<infer U> ? U : never
然后你可以这样使用它
type SomeArrayType = Array<{foo: string}>;
type TheTypeOfThoseElements = ElementOf<SomeArrayType>;
type SomeOtherType = ElementOf<typeof someVariable>;
你可能还需要从类型中省略 | undefined,可以这样做:
type DefinitelyDefined<T> = Exclude<T, undefined>
