@sinclair/typebox 0.24.36 → 0.24.37
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.
- package/package.json +1 -1
- package/typebox.d.ts +5 -5
package/package.json
CHANGED
package/typebox.d.ts
CHANGED
|
@@ -99,16 +99,16 @@ export interface TInteger extends TSchema, NumericOptions {
|
|
|
99
99
|
static: number;
|
|
100
100
|
type: 'integer';
|
|
101
101
|
}
|
|
102
|
+
export declare type IntersectReduce<I extends unknown, T extends readonly any[]> = T extends [infer A, ...infer B] ? IntersectReduce<I & A, B> : I extends object ? I : {};
|
|
102
103
|
export declare type IntersectEvaluate<T extends readonly TSchema[], P extends unknown[]> = {
|
|
103
104
|
[K in keyof T]: T[K] extends TSchema ? Static<T[K], P> : never;
|
|
104
105
|
};
|
|
105
|
-
export declare type
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}[number]> extends infer P ? (P extends TProperties ? P : TProperties) : never;
|
|
106
|
+
export declare type IntersectProperties<T extends readonly TObject[]> = {
|
|
107
|
+
[K in keyof T]: T[K]['properties'];
|
|
108
|
+
};
|
|
109
109
|
export interface TIntersect<T extends TObject[] = TObject[]> extends TObject {
|
|
110
110
|
static: IntersectReduce<unknown, IntersectEvaluate<T, this['params']>>;
|
|
111
|
-
properties: IntersectProperties<T
|
|
111
|
+
properties: IntersectReduce<unknown, IntersectProperties<T>>;
|
|
112
112
|
}
|
|
113
113
|
export declare type UnionToIntersect<U> = (U extends unknown ? (arg: U) => 0 : never) extends (arg: infer I) => 0 ? I : never;
|
|
114
114
|
export declare type UnionLast<U> = UnionToIntersect<U extends unknown ? (x: U) => 0 : never> extends (x: infer L) => 0 ? L : never;
|