最简单的解决方案是这样的:
type IsUnknown<T> = unknown extends T ? true : never
Run Code Online (Sandbox Code Playgroud)
但是,它也会返回truefor any,因为它可以分配给任何类型。如果您需要处理这种情况,请借用解决方案IsAny并执行以下操作:
type IsUnknown<T> = IsAny<T> extends true ? never : unknown extends T ? true : never
type A = IsUnknown<unknown> // true
type B = IsUnknown<any> // never
type C = IsUnknown<never> // never
type D = IsUnknown<string> // never
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1703 次 |
| 最近记录: |