A type that recursively makes each property of T required.
Optionally excluding a nested path specified by a list of keys.
Defines a function that takes a value and returns true if the condition is
satisfied, or false if it doesn't.
A type that extends Required that in addition to making fields
not undefined, also makes them not nullable.
A type that recursively makes each property of
Toptional.