Transform the type in a type serializable.
Sample:
type SerializableBase<T> = T extends string | number | boolean | null ? T : | |
T extends Function ? never : | |
T extends object ? { [K in keyof T]: ExcludeNever<SerializableBase<T[K]>> } : | |
never | |
type ExcludeNever<T> = T extends object ? Pick<T, { [K in keyof T]: T[K] extends never ? never : K }[keyof T]> : | |
T; | |
type Serializable<T> = ExcludeNever<SerializableBase<T>> |