import type { Equal, Expect } from '@type-challenges/utils' type casesPalindrome = [ Expect, false>>, Expect, true>>, Expect, false>>, Expect, true>>, Expect, true>>, Expect, false>>, ] type CheckPalindrome< T extends string[] > = T extends [infer First, ...infer Mid, infer Last] ? First extends Last ? Mid extends string[] ? CheckPalindrome : never : false : true ; type ToArr = T extends `${infer Head}${infer Tail}` ? [Head, ...ToArr] : []; type IsPalindrome< T extends string | number > = T extends number ? IsPalindrome<`${T}`> : T extends string ? CheckPalindrome> : never