typia 4.0.6-dev.20230611 → 4.0.6-dev.20230613

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -30,7 +30,7 @@
30
30
  */
31
31
  export type Primitive<T> = Equal<T, PrimitiveMain<T>> extends true ? T : PrimitiveMain<T>;
32
32
  type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
33
- type PrimitiveMain<Instance> = ValueOf<Instance> extends boolean | number | bigint | string ? ValueOf<Instance> : ValueOf<Instance> extends object ? Instance extends object ? Instance extends NativeClass ? {} : Instance extends IJsonable<infer Raw> ? ValueOf<Raw> extends object ? Raw extends object ? PrimitiveObject<Raw> : never : ValueOf<Raw> : PrimitiveObject<Instance> : never : ValueOf<Instance>;
33
+ type PrimitiveMain<Instance> = Instance extends [never] ? never : ValueOf<Instance> extends boolean | number | bigint | string ? ValueOf<Instance> : ValueOf<Instance> extends object ? Instance extends object ? Instance extends NativeClass ? {} : Instance extends IJsonable<infer Raw> ? ValueOf<Raw> extends object ? Raw extends object ? PrimitiveObject<Raw> : never : ValueOf<Raw> : PrimitiveObject<Instance> : never : ValueOf<Instance>;
34
34
  type PrimitiveObject<Instance extends object> = Instance extends Array<infer T> ? IsTuple<Instance> extends true ? PrimitiveTuple<Instance> : PrimitiveMain<T>[] : {
35
35
  [P in keyof Instance]: Instance[P] extends Function ? never : PrimitiveMain<Instance[P]>;
36
36
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "4.0.6-dev.20230611",
3
+ "version": "4.0.6-dev.20230613",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -77,7 +77,7 @@
77
77
  "randexp": "^0.5.3"
78
78
  },
79
79
  "peerDependencies": {
80
- "typescript": ">= 4.5.2"
80
+ "typescript": ">= 4.7.4"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@fastify/type-provider-typebox": "^3.0.0",
package/src/Primitive.ts CHANGED
@@ -34,11 +34,9 @@ export type Primitive<T> = Equal<T, PrimitiveMain<T>> extends true
34
34
 
35
35
  type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
36
36
 
37
- type PrimitiveMain<Instance> = ValueOf<Instance> extends
38
- | boolean
39
- | number
40
- | bigint
41
- | string
37
+ type PrimitiveMain<Instance> = Instance extends [never]
38
+ ? never // (special trick for jsonable | null) type
39
+ : ValueOf<Instance> extends boolean | number | bigint | string
42
40
  ? ValueOf<Instance>
43
41
  : ValueOf<Instance> extends object
44
42
  ? Instance extends object