Takes a value T and a key K.
If value is an Array<A> (K is enforced as number in this case), it returns value[key] as A | undefined.
If value is a Record<any, any> (K is enforced as keyof T in this case), it returns value[key] as T[K] | undefined.
Else it returns undefined.
Takes a value
Tand a keyK. If value is anArray<A>(Kis enforced as number in this case), it returnsvalue[key]asA | undefined. If value is aRecord<any, any>(Kis enforced askeyof Tin this case), it returnsvalue[key]asT[K] | undefined. Else it returns undefined.