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>"
AssertNonExistingKeyis a helper type that returnsK, ifKdoes not extendkeyof T. IfK extends keyof T(K is a key of the object T), thennever | Messagewill 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>"