type Id = NonNullable<string | null | undefined>
// Id = stringNonNullable<T> removes null and undefined from a union type, leaving only concrete values.
NonNullable<T> removes null and undefined from a type.
Challenge: Implement getNonNull<T>(value: T): NonNullable<T> that returns the value or throws if it is null/undefined.
getNonNull(42) // β 42
getNonNull(null) // throws