© 2026 Hedgehog Software, LLC
S.Class
export const OrderId = S.UUID; export class PendingOrder extends S.Class<PendingOrder>()({ id: OrderId, status: S.literal('pending'), createdOn: S.Date, }) {} export class CompletedOrder extends PendingOrder.extend<CompletedOrder>()({ status: S.literal('completed'), completedAt: S.Date, }) {} export const Order = S.union(PendingOrder, CompletedOrder); export type Order = S.Schema.To<typeof Order>;
status
CompletedOrder
export const OrderId = S.UUID; export class PendingOrder extends S.Class<PendingOrder>("PendingOrder")({ id: OrderId, status: S.literal('pending'), createdOn: S.Date, }) {} export class CompletedOrder extends PendingOrder.extend<CompletedOrder>("CompletedOrder")({ status: S.literal('completed'), completedAt: S.Date, }) {} export const Order = S.union(PendingOrder, CompletedOrder); export type Order = S.Schema.Encoded<typeof Order>;
Base constructor return type 'never' is not an object type or intersection of object types with statically known members