© 2026 Hedgehog Software, LLC
optionalToRequired
{ parent?: number }
{ parent: number | null }
null
number
withDecodingDefault
import { Effect, Option, Schema as S, pipe } from "effect" const OptionalToNullable = <T>(schema: S.Schema<T>) => S.optionalToRequired( // @ts-ignore schema, S.NullOr(schema), { encode: (a) => Option.some(a), decode: (a) => Option.isNone(a) ? null : a.value } ) const Node = S.Struct({ id: S.Number, parent: OptionalToNullable(S.Number) }) const program = pipe( S.decodeUnknown(Node)({ id: 2 }), Effect.tap(Effect.log) // { id: 2, parent: null } )