diff --git a/packages/validator/src/types/primitive.boolean.ts b/packages/validator/src/types/primitive.boolean.ts index d474210..0ea9bd3 100644 --- a/packages/validator/src/types/primitive.boolean.ts +++ b/packages/validator/src/types/primitive.boolean.ts @@ -1,4 +1,4 @@ -import type { IsEqual, Switch, t as tn } from '@typp/core' +import type { IsEqual, IsIntersect, Switch, t as tn } from '@typp/core' import { FALSY } from '../base' import { preprocess } from '../utils.inner' @@ -16,24 +16,46 @@ declare module '@typp/core' { [T] extends [boolean] ? true : false, Switch<{ any: [IsEqual, unknown] - bigint: [ - [Input] extends [bigint] ? true : false, - boolean + boolean: [ + true extends ( + | IsIntersect + | IsIntersect + | IsIntersect + ) ? true : false, + [InputRest] extends [never] ? ( + Input extends infer UnionInputItem ? ( + IsEqual extends true + ? boolean + : Extract + ) : never + ) : never ] - self: [ - [Input] extends [boolean] ? true : false, + bigint: [ + true extends ( + | IsIntersect + | IsIntersect + ) ? true : false, boolean ] number: [ - [Input] extends [number] ? true : false, + true extends ( + | IsIntersect + | IsIntersect + ) ? true : false, boolean ] string: [ - [Input] extends [string] ? true : false, - boolean, + true extends ( + | IsIntersect + | IsIntersect + ) ? true : false, + boolean ] nullOrUndefined: [ - [Input] extends [null | undefined] ? true : false, + true extends ( + | IsIntersect + | IsIntersect + ) ? true : false, false ] }>