This solution is generated by ChatGPT, correctness is not guaranteed.

AI solution for TypeScript puzzle on
28. implement IsEmptyType<T>


type IsEmptyType<T> = keyof T extends never ? true : false;


  • We use keyof T to get the keys of the object type T.
  • If T is an empty object {}, then the keys of T would be the empty type never.
  • So, if keyof T is never, then T is an empty object type and we return true. Otherwise, we return false.


  • IsEmptyType<any> and IsEmptyType<object> both evaluate to false because they are not empty object types. any is not an object type and object is a non-empty object type.
  • IsEmptyType<Object> evaluates to false because Object is a built-in constructor function in JavaScript and not an empty object type.