any型の値を持っているかを検出することが便利な場合があります。これは、モジュール API でany型の値をエクスポート可能なサードーパーティーの TypeScript モジュールを使用する際に
特に便利です。また、implicitAny チェックを抑制する際にany型について知ることは良いことです。
そこで、型Tを受け取るユーティリティ型IsAny<T>を書いてみましょう。Tがany型であればtrueを返し、そうでなければfalseを返します。
import type { Equal, Expect } from '@type-challenges/utils'
type cases = [
Expect<Equal<IsAny<any>, true>>,
Expect<Equal<IsAny<undefined>, false>>,
Expect<Equal<IsAny<unknown>, false>>,
Expect<Equal<IsAny<never>, false>>,
Expect<Equal<IsAny<string>, false>>,
]