@@ -66,7 +66,7 @@ type TypeName<T> =
66
66
67
67
type T20 = TypeName < string | ( ( ) => void ) > ; // "string" | "function"
68
68
type T21 = TypeName < any > ; // "string" | "number" | "boolean" | "undefined" | "function" | "object"
69
- type T22 = TypeName < never > ; // "string" | "number" | "boolean" | "undefined" | "function" | "object"
69
+ type T22 = TypeName < never > ; // never
70
70
type T23 = TypeName < { } > ; // "object"
71
71
72
72
type KnockoutObservable < T > = { object : T } ;
@@ -174,7 +174,7 @@ type IsString<T> = Extends<T, string>;
174
174
type Q1 = IsString < number > ; // false
175
175
type Q2 = IsString < "abc" > ; // true
176
176
type Q3 = IsString < any > ; // boolean
177
- type Q4 = IsString < never > ; // boolean
177
+ type Q4 = IsString < never > ; // never
178
178
179
179
type N1 = Not < false > ; // true
180
180
type N2 = Not < true > ; // false
@@ -202,9 +202,9 @@ type O9 = Or<boolean, boolean>; // boolean
202
202
203
203
type T40 = never extends never ? true : false ; // true
204
204
type T41 = number extends never ? true : false ; // false
205
- type T42 = never extends number ? true : false ; // boolean
205
+ type T42 = never extends number ? true : false ; // true
206
206
207
- type IsNever < T > = T extends never ? true : false ;
207
+ type IsNever < T > = [ T ] extends [ never ] ? true : false ;
208
208
209
209
type T50 = IsNever < never > ; // true
210
210
type T51 = IsNever < number > ; // false
0 commit comments