Bottom<
T,
E,
RD,
RE,
Ast,
Rebuild,
TypeMakeIn,
Iso,
TypeParameters,
TypeMake,
TypeMutability,
TypeOptionality,
TypeConstructorDefault,
EncodedMutability,
EncodedOptionality
>The fully-parameterized base interface for all schemas. Exposes all 14 type parameters controlling type inference, mutability, optionality, services, and transformation behavior.
When to use
Use when you are writing advanced generic schema utilities or performing schema introspection.
export interface interface Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">The fully-parameterized base interface for all schemas. Exposes all 14 type
parameters controlling type inference, mutability, optionality, services, and
transformation behavior.
When to use
Use when you are writing advanced generic schema utilities or performing
schema introspection.
Bottom<
out function (type parameter) T in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">T,
out function (type parameter) E in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">E,
out function (type parameter) RD in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">RD,
out function (type parameter) RE in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">RE,
out function (type parameter) Ast in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">Ast extends import SchemaASTSchemaAST.type AST = SchemaAST.Declaration | SchemaAST.Null | SchemaAST.Undefined | SchemaAST.Void | SchemaAST.Never | SchemaAST.Unknown | SchemaAST.Any | SchemaAST.String | SchemaAST.Number | SchemaAST.Boolean | SchemaAST.BigInt | SchemaAST.Symbol | SchemaAST.Literal | SchemaAST.UniqueSymbol | SchemaAST.ObjectKeyword | SchemaAST.Enum | SchemaAST.TemplateLiteral | SchemaAST.Arrays | SchemaAST.Objects | SchemaAST.Union<...> | SchemaAST.SuspendDiscriminated union of all AST node types.
Details
Every Schema has an .ast property of this type. Use the guard functions
(
isString
,
isObjects
, etc.) to narrow to a specific variant,
then access variant-specific fields.
- All variants share the
Base
fields:
annotations, checks,
encoding, context.
- Discriminate on the
_tag field (e.g. "String", "Objects", "Union").
AST,
out function (type parameter) Rebuild in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">Rebuild extends Top,
out function (type parameter) TypeMakeIn in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeMakeIn = function (type parameter) T in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">T,
out function (type parameter) Iso in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">Iso = function (type parameter) T in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">T,
in out function (type parameter) TypeParameters in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeParameters extends interface ReadonlyArray<T>ReadonlyArray<Constraint> = readonly [],
out function (type parameter) TypeMake in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeMake = function (type parameter) TypeMakeIn in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeMakeIn,
out function (type parameter) TypeMutability in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeMutability extends type Mutability = "readonly" | "mutable"Whether a schema field is readonly or mutable within a struct.
Mutability = "readonly",
out function (type parameter) TypeOptionality in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeOptionality extends type Optionality = "required" | "optional"Whether a schema field is required or optional within a struct.
Optionality = "required",
out function (type parameter) TypeConstructorDefault in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeConstructorDefault extends type ConstructorDefault =
| "no-default"
| "with-default"
Whether a schema field has a constructor default value.
ConstructorDefault = "no-default",
out function (type parameter) EncodedMutability in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">EncodedMutability extends type Mutability = "readonly" | "mutable"Whether a schema field is readonly or mutable within a struct.
Mutability = "readonly",
out function (type parameter) EncodedOptionality in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">EncodedOptionality extends type Optionality = "required" | "optional"Whether a schema field is required or optional within a struct.
Optionality = "required"
> extends import PipeablePipeable.Pipeable {
readonly [const TypeId: "~effect/Schema/Schema"TypeId]: typeof const TypeId: "~effect/Schema/Schema"TypeId
readonly "ast": function (type parameter) Ast in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">Ast
readonly "Rebuild": function (type parameter) Rebuild in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">Rebuild
readonly "~type.parameters": function (type parameter) TypeParameters in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeParameters
readonly "Type": function (type parameter) T in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">T
readonly "Encoded": function (type parameter) E in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">E
readonly "DecodingServices": function (type parameter) RD in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">RD
readonly "EncodingServices": function (type parameter) RE in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">RE
readonly "~type.make.in": function (type parameter) TypeMakeIn in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeMakeIn
readonly "~type.make": function (type parameter) TypeMake in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeMake // useful to type the `refine` interface
readonly "~type.constructor.default": function (type parameter) TypeConstructorDefault in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeConstructorDefault
readonly "Iso": function (type parameter) Iso in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">Iso
readonly "~type.mutability": function (type parameter) TypeMutability in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeMutability
readonly "~type.optionality": function (type parameter) TypeOptionality in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">TypeOptionality
readonly "~encoded.mutability": function (type parameter) EncodedMutability in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">EncodedMutability
readonly "~encoded.optionality": function (type parameter) EncodedOptionality in Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">EncodedOptionality
Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">.annotate(annotations: Annotations.Bottom<this["Type"], this["~type.parameters"]>): this["Rebuild"]annotate(annotations: Annotations.Bottom<
this["Type"],
this["~type.parameters"]
>
(parameter) annotations: {
message: string | undefined;
messageUnexpectedKey: string | undefined;
identifier: string | undefined;
parseOptions: SchemaAST.ParseOptions | undefined;
meta: Meta | undefined;
brands: ReadonlyArray<string> | undefined;
toArbitrary: ToArbitrary.Declaration<T, TypeParameters> | undefined;
default: T | undefined;
examples: ReadonlyArray<T> | undefined;
expected: string | undefined;
title: string | undefined;
description: string | undefined;
documentation: string | undefined;
readOnly: boolean | undefined;
writeOnly: boolean | undefined;
format: string | undefined;
contentEncoding: string | undefined;
contentMediaType: string | undefined;
}
annotations: Annotations.interface Annotations.Bottom<T, TypeParameters extends ReadonlyArray<Constraint>>Base annotations shared by all composite schema nodes. Extends
Documentation
with error messages, branding, parse options, and
arbitrary generation hooks.
Declaration
and other annotation
interfaces build on top of this.
Bottom<this["Type"], this["~type.parameters"]>): this["Rebuild"]
Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">.annotateKey(annotations: Annotations.Key<this["Type"]>): this["Rebuild"]annotateKey(annotations: Annotations.Key<this["Type"]>(parameter) annotations: {
messageMissingKey: string | undefined;
default: T | undefined;
examples: ReadonlyArray<T> | undefined;
expected: string | undefined;
title: string | undefined;
description: string | undefined;
documentation: string | undefined;
readOnly: boolean | undefined;
writeOnly: boolean | undefined;
format: string | undefined;
contentEncoding: string | undefined;
contentMediaType: string | undefined;
}
annotations: Annotations.interface Annotations.Key<T>Annotations for struct property schemas. Extends
Documentation
with an optional messageMissingKey to override the error message when
the property key is absent during decoding.
Key<this["Type"]>): this["Rebuild"]
Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">.check(checks_0: SchemaAST.Check<this["Type"]>, ...checks: SchemaAST.Check<this["Type"]>[]): this["Rebuild"]check(...checks: readonly [
SchemaAST.Check<this["Type"]>,
...Array<SchemaAST.Check<this["Type"]>>
]
(parameter) checks: {
0: SchemaAST.Check<this['Type']>;
length: number;
toString: () => string;
toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string };
concat: { (...items: Array<ConcatArray<SchemaAST.Check<this['Type']>>>): Array<SchemaAST.Check<this['Type']>>; (...items: Array<SchemaAST.Check<this['Type']> | ConcatArray<SchemaAST.Check<this['Type']>>>): Array<SchemaAST.Check<this['Type']>>; };
join: (separator?: string) => string;
slice: (start?: number, end?: number) => Array<SchemaAST.Check<this['Type']>>;
indexOf: (searchElement: SchemaAST.Check<this['Type']>, fromIndex?: number) => number;
lastIndexOf: (searchElement: SchemaAST.Check<this['Type']>, fromIndex?: number) => number;
every: { <S>(predicate: (value: SchemaAST.Check<this['Type']>, index: number, array: ReadonlyArray<SchemaAST.Check<this['Type']>>) => value is S, thisArg?: any): this is readonly S[]; (predicate: (value: SchemaAST.Check<this['Type']>, index: numb…;
some: (predicate: (value: SchemaAST.Check<this['Type']>, index: number, array: ReadonlyArray<SchemaAST.Check<this['Type']>>) => unknown, thisArg?: any) => boolean;
forEach: (callbackfn: (value: SchemaAST.Check<this['Type']>, index: number, array: ReadonlyArray<SchemaAST.Check<this['Type']>>) => void, thisArg?: any) => void;
map: (callbackfn: (value: SchemaAST.Check<this['Type']>, index: number, array: ReadonlyArray<SchemaAST.Check<this['Type']>>) => U, thisArg?: any) => Array<U>;
filter: { <S>(predicate: (value: SchemaAST.Check<this['Type']>, index: number, array: ReadonlyArray<SchemaAST.Check<this['Type']>>) => value is S, thisArg?: any): Array<S>; (predicate: (value: SchemaAST.Check<this['Type']>, index: number, array: R…;
reduce: { (callbackfn: (previousValue: SchemaAST.Check<this['Type']>, currentValue: SchemaAST.Check<this['Type']>, currentIndex: number, array: ReadonlyArray<SchemaAST.Check<this['Type']>>) => SchemaAST.Check<this['Type']>): SchemaAST.Check<this['…;
reduceRight: { (callbackfn: (previousValue: SchemaAST.Check<this['Type']>, currentValue: SchemaAST.Check<this['Type']>, currentIndex: number, array: ReadonlyArray<SchemaAST.Check<this['Type']>>) => SchemaAST.Check<this['Type']>): SchemaAST.Check<this['…;
find: { <S>(predicate: (value: SchemaAST.Check<this['Type']>, index: number, obj: ReadonlyArray<SchemaAST.Check<this['Type']>>) => value is S, thisArg?: any): S | undefined; (predicate: (value: SchemaAST.Check<this['Type']>, index: number, obj: …;
findIndex: (predicate: (value: SchemaAST.Check<this['Type']>, index: number, obj: ReadonlyArray<SchemaAST.Check<this['Type']>>) => unknown, thisArg?: any) => number;
entries: () => ArrayIterator<[number, SchemaAST.Check<this['Type']>]>;
keys: () => ArrayIterator<number>;
values: () => ArrayIterator<SchemaAST.Check<this['Type']>>;
includes: (searchElement: SchemaAST.Check<this['Type']>, fromIndex?: number) => boolean;
flatMap: (callback: (this: This, value: SchemaAST.Check<this['Type']>, index: number, array: Array<SchemaAST.Check<this['Type']>>) => U | ReadonlyArray<U>, thisArg?: This | undefined) => Array<U>;
flat: (this: A, depth?: D | undefined) => Array<FlatArray<A, D>>;
at: (index: number) => SchemaAST.Check<this['Type']> | undefined;
findLast: { <S>(predicate: (value: SchemaAST.Check<this['Type']>, index: number, array: ReadonlyArray<SchemaAST.Check<this['Type']>>) => value is S, thisArg?: any): S | undefined; (predicate: (value: SchemaAST.Check<this['Type']>, index: number, arr…;
findLastIndex: (predicate: (value: SchemaAST.Check<this['Type']>, index: number, array: ReadonlyArray<SchemaAST.Check<this['Type']>>) => unknown, thisArg?: any) => number;
toReversed: () => Array<SchemaAST.Check<this['Type']>>;
toSorted: (compareFn?: ((a: SchemaAST.Check<this['Type']>, b: SchemaAST.Check<this['Type']>) => number) | undefined) => Array<SchemaAST.Check<this['Type']>>;
toSpliced: { (start: number, deleteCount: number, ...items: Array<SchemaAST.Check<this['Type']>>): Array<SchemaAST.Check<this['Type']>>; (start: number, deleteCount?: number): Array<SchemaAST.Check<this['Type']>>; };
with: (index: number, value: SchemaAST.Check<this['Type']>) => Array<SchemaAST.Check<this['Type']>>;
}
checks: readonly [import SchemaASTSchemaAST.type Check<T> =
| SchemaAST.Filter<T>
| SchemaAST.FilterGroup<T>
Check<this["Type"]>, ...interface Array<T>Array<import SchemaASTSchemaAST.type Check<T> =
| SchemaAST.Filter<T>
| SchemaAST.FilterGroup<T>
Check<this["Type"]>>]): this["Rebuild"]
Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">.rebuild(ast: this["ast"]): this["Rebuild"]rebuild(ast: this["ast"]ast: this["ast"]): this["Rebuild"]
/**
* Constructs a value from the make input representation synchronously.
*
* **When to use**
*
* Use when constructor input is trusted or when validation failure
* should abort with a thrown `Error`.
*
* **Details**
*
* Applies constructor defaults and type-side validation according to
* `MakeOptions`.
*
* **Gotchas**
*
* Throws an `Error` with the schema issue in its `cause` when validation
* fails.
* Causes that contain defects, interruptions, or other non-schema reasons
* throw with the underlying `Cause` attached instead.
*
* @see {@link Bottom.makeOption} — construct synchronously and discard validation details
* @see {@link Bottom.makeEffect} — construct through `Effect` when validation failure should stay in the error channel
*/
function Bottom(input: this['~type.make.in'], options?: MakeOptions): this['Type']Constructs a value from the make input representation synchronously.
When to use
Use when constructor input is trusted or when validation failure
should abort with a thrown Error.
Details
Applies constructor defaults and type-side validation according to
MakeOptions.
Gotchas
Throws an Error with the schema issue in its cause when validation
fails.
Causes that contain defects, interruptions, or other non-schema reasons
throw with the underlying Cause attached instead.
make(input: this["~type.make.in"]input: this["~type.make.in"], options: MakeOptionsoptions?: MakeOptions): this["Type"]
/**
* Constructs a value from the make input representation, returning `Option.none`
* when validation fails.
*
* **When to use**
*
* Use when you only need to know whether construction succeeds
* and do not need validation details.
*
* **Details**
*
* Applies constructor defaults and type-side validation according to
* `MakeOptions`.
*
* **Gotchas**
*
* Only causes made entirely of schema issues are converted to `None`. Causes
* that contain defects, interruptions, or other non-schema reasons throw
* instead.
*
* @see {@link Bottom.make} — construct synchronously when validation failure should throw
* @see {@link Bottom.makeEffect} — construct through `Effect` when validation details should stay in the error channel
*/
function Bottom(input: this['~type.make.in'], options?: MakeOptions): Option_.Option<this['Type']>Constructs a value from the make input representation, returning Option.none
when validation fails.
When to use
Use when you only need to know whether construction succeeds
and do not need validation details.
Details
Applies constructor defaults and type-side validation according to
MakeOptions.
Gotchas
Only causes made entirely of schema issues are converted to None. Causes
that contain defects, interruptions, or other non-schema reasons throw
instead.
makeOption(input: this["~type.make.in"]input: this["~type.make.in"], options: MakeOptionsoptions?: MakeOptions): import Option_Option_.type Option_.Option = /*unresolved*/ anyOption<this["Type"]>
/**
* Constructs a value from the make input representation, returning validation
* failures in the `Effect` error channel.
*
* **When to use**
*
* Use when constructor input may fail validation and you want to
* compose that failure with other `Effect` operations instead of throwing.
*
* @see {@link Bottom.make} — construct synchronously when validation failure should throw
* @see {@link Bottom.makeOption} — construct synchronously and discard validation details
*/
function Bottom(input: this['~type.make.in'], options?: MakeOptions): Effect.Effect<this['Type'], SchemaError>Constructs a value from the make input representation, returning validation
failures in the Effect error channel.
When to use
Use when constructor input may fail validation and you want to
compose that failure with other Effect operations instead of throwing.
makeEffect(input: this["~type.make.in"]input: this["~type.make.in"], options: MakeOptionsoptions?: MakeOptions): import EffectEffect.type Effect.Effect = /*unresolved*/ anyEffect<this["Type"], class SchemaErrorclass SchemaError {
message: string;
toString: () => string;
name: string;
stack: string;
cause: unknown;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toJSON: () => unknown;
_tag: Tag;
issue: SchemaIssue.Issue;
}
Error thrown (or returned as the error channel value) when schema decoding
or encoding fails.
Details
The issue field contains a structured
Issue
tree describing
every validation failure, including the path to the problematic value,
expected types, and actual values received. message renders the issue tree
as a human-readable string.
Use
isSchemaError
to narrow an unknown value to SchemaError.
Example (Catching a SchemaError)
import { Schema } from "effect"
try {
Schema.decodeUnknownSync(Schema.Number)("not a number")
} catch (err) {
if (Schema.isSchemaError(err)) {
console.log(err.message)
// Expected number, actual "not a number"
}
}
SchemaError>
}