Como extrair um tipo de uma matriz em texto datilografado?

Existe uma maneira de declarar um tipo no texto datilografado que 'extrai' o tipo interno de uma matriz?

Exemplo:

Digamos que eu já tenha algo assim na minha base de código:

export interface Cache {
    events: Event[],
    users: User[]
}
type CacheType = Event[] | User[];

//or maybe: 
//   type TypeOfProperty = T[keyof T];
//   type CacheType = TypeOfProperty<Cache>; 

O que eu quero é algo que seria equivalente a isso:

type InnerCacheType = Event | User;

Mas sem redigitá-lo manualmente toda vez que adiciono algo aCache ouCacheType

Isso é possível no texto datilografado?

questionAnswers(3)

yourAnswerToTheQuestion