undefined, given exactOptionalPropertyTypes. undefined over null as the default "nil" value, and used null to signal explicitly "deleting" value, as opposed its absence. Only annoyance there is databases that cast undefined to null, so I have to write at least one conversion schema for the database read model.exactOptionalPropertyTypes though, I find that I'm writing even more schema conversions; some tooling spits out explicit undefineds, but over the wire, JSON gets rid of undefined, so values become optional.Option for record-fields, makes models too complicated, I prefer using Option for the entire entity.null. I guess I could also do {key?: T | undefined}, and overload it.