typeas
Version:
Library for checking data values and type safety
24 lines (20 loc) • 895 B
text/typescript
import type { CreateExpression } from "../factories/expression";
import type { BooleanExpression } from "./boolean";
import type { DateExpression } from "./date";
import type { EnumExpression } from "./enum";
import type { NumberExpression } from "./number";
import type { ObjectExpression } from "./object";
import type { StringExpression } from "./string";
import type { TupleExpression } from "./tuple";
type UnionBaseItemExpression =
| StringExpression
| NumberExpression
| BooleanExpression
| DateExpression
| EnumExpression
| ObjectExpression;
type UnionItemExpression =
| UnionBaseItemExpression
| TupleExpression<UnionBaseItemExpression>
| UnionExpression<UnionBaseItemExpression | TupleExpression<UnionBaseItemExpression>>;
export type UnionExpression<Item = UnionItemExpression> = readonly [CreateExpression<"union">, ...(readonly Item[])];