In my code, I did something quite long — I check if it's a function, an array, a primitive, etc., and if not, and it extends from object, I say it's an object. But I'm not sure if that's the right way to do it
Naive solution :
type t_notObject = string|undefined|null|readonly any[]|number
type t_isObject<T> = T extends t_notObject ? false : true //TODO
