Why do we need the "TKey in string"? Why does TypeScript say it can be 'string | number | symbol' even though we said TObj extends Record<string, unknown>? Thanks for the course :)
Enrico I think those are the primitive types (string | number | symbol) sans boolean, so I think by adding the intersection type
TKey in string & keyof TObj... it denotes that we are filtering(?) TKey, otherwise of types
string | number | symbol | keyof TObj, on the basis of whether a corresponding key is of type
string or not. All non-string keys get 86'd (discarded) by incorporating this intersection.
Please correct me if my understanding is off
Actually, after thinking on it, it seems that it is actually coercing the type of TKey to string, not necessarily filtering them