Why does the findByFields() and other functions provided by "this" return a union of the `(TData, undefined, and null)[]`? Why not just TData[]? 
Why does the findByFields() and other functions provided by "this" return a union of the
(TData, undefined, and null)[]?Why not just TData[]?