typescript - Hämta typ från Array<T>
Jag har en automatgenererad typ,
export type ReferralListByCustomerQuery = { referralListByCustomer?: Array<{ code: string, referredByID: string } | undefined> | undefined };
Men jag behöver en typ av Array-objekt:
type WhatINeed = { code: string, referredByID: string } | undefinedSå, jag vet hur man extraherar array-typen:
type IncludingArray = ReferralListByCustomerQuery[referralListByCustomer]men frågan är hur man extraherar array-objekt. efter Google:
type OnlyItem =IncludingArray[number] fungerar inte
Svar #1
Detta är samma som T[number], men du kan extrahera så här också:
type ElementOf<T> = T extends Array<infer U> ? U : never
Du kan sedan använda det så här
type SomeArrayType = Array<{foo: string}>;
type TheTypeOfThoseElements = ElementOf<SomeArrayType>;
type SomeOtherType = ElementOf<typeof someVariable>;
Du kan också behöva utelämna | undefined från typen, vilket kan göras så här:
type DefinitelyDefined<T> = Exclude<T, undefined>
