TypeScript从具有单个项的数组中的union中获取第一个元素

TypeScript从具有单个项的数组中的union中获取第一个元素,typescript,Typescript,如何从type X=[Message | PartialMessage]动态获取“Message”?我想有条件地检查我是否在事件侦听器中处理消息或部分消息 接口消息{} 接口部分消息{} 界面反应{} 界面用户{} 接口PartialUser{} 接口事件{ 消息:[消息|部分消息] messageReactionAdd:[MessageReaction,用户| PartialUser] } 键入EnabledPartials=[消息] 类型CurrentEvent=事件[“消息”] 输入Fir

如何从
type X=[Message | PartialMessage]
动态获取“Message”?我想有条件地检查我是否在事件侦听器中处理消息或部分消息

接口消息{}
接口部分消息{}
界面反应{}
界面用户{}
接口PartialUser{}
接口事件{
消息:[消息|部分消息]
messageReactionAdd:[MessageReaction,用户| PartialUser]
}
键入EnabledPartials=[消息]
类型CurrentEvent=事件[“消息”]
输入FirstFromTuple=
T['length']扩展到0?未定义:T[0]
类型AnyElementOf=T[number];
类型ArrayIncludes=AnyElementOf扩展AnyElementOf
? 真的
:错
类型PartialOrNot=ArrayIncludes扩展为true
? 当前事件
:FirstFromTuple//我想要消息部分

联合类型不是位置型的,实际上没有第一个或第二个概念与您的问题无关,但出于好奇,您不是指
类型X=(消息|部分消息)[
,它是
消息|部分消息
的数组,而不是
类型X=[消息|部分消息]
(单个元素的数组)?我在我的问题@julianobrasil中添加了一些上下文