As of release 0.628, attempting to index a table which has the type of a union/intersection only consisting of the same type throws a TypeError.
This can be reproduced with the following code:
--!strict
type array = {number}
type union = array | array
type intersection = array & array
local tableUnion: union = {1, 2, 3}
print(tableUnion[1]) --TypeError: Expected type table, got 'array | array' instead
local tableIntersection: intersection = {1, 2, 3}
print(tableIntersection[2]) --TypeError: Expected type table, got 'array & array' instead
As of release 0.628, attempting to index a table which has the type of a union/intersection only consisting of the same type throws a TypeError. This can be reproduced with the following code: