AssertNonExistingKey<K, T, Message>:K & (K extends keyof T ? never : K) | Message
AssertNonExistingKey is a helper type that returns K, if K does not extend keyof T.
If K extends keyof T (K is a key of the object T), then never | Message will be the result type.
The latter would result in a TS-error, if a function expects an argument as AssertNonExistingKey<K, T, M>, saying "argument of type <K> is not assignable to parameter of type <Message>"
AssertNonExistingKey
is a helper type that returnsK
, ifK
does not extendkeyof T
. IfK extends keyof T
(K is a key of the object T), thennever | Message
will be the result type. The latter would result in a TS-error, if a function expects an argument asAssertNonExistingKey<K, T, M>
, saying "argument of type<K>
is not assignable to parameter of type<Message>
"