This says "either an array of Foo or an array of undefined", right? Not "either an array of Foo or just undefined"?
Foo[] | undefined[] means either 1) an array of Foo, or 2) an array of undefined.
Foo[] | undefined[] means either 1) an array of Foo, or 2) an array of undefined.