더북(TheBook)

생각보다 상당히 복잡합니다. IsArray<T>T extends unknown[] ? true : false로 작성했다면 반례를 생각하지 않은 것입니다. Tnever, any, readonly [] 타입일 때는 false가 되지 않습니다. IsArray<T> 타입이 복잡한 건 다음 이유 때문입니다.

IsArray<never>never가 되는 것을 막기 위해 IsNever<T> extends true가 필요

IsArray<any>boolean이 되는 것을 막기 위해 IsAny<T> extends true가 필요

IsArray<readonly []>false가 되는 것을 막기 위해 T extends readonly unknown[]이 필요

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.