T
LoosePropValue
The value type a loose prop accepts: a primitive, literal union or callback stays checked; anything else the
generator inferred (any, objects, React nodes, wide unions) is UncertainValue.
type LoosePropValue<T> = 0 extends 1 & T ? UncertainValue : [NonNullable<T>] extends [Primitive] ? T : [NonNullable<T>] extends [Callback] ? T : UncertainValue