Hyperlinkv0.8.0-beta.28

Schema

Schema.SchemaErrorclasseffect/SchemaError.ts:41
SchemaError

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"
  }
}
export class SchemaError extends Data.TaggedError("SchemaError")<{
  readonly issue: Issue
}> {
  readonly [TypeId]: typeof TypeId = TypeId
  constructor(issue: Issue) {
    super({ issue })
  }
  override get message() {
    return this.issue.toString()
  }
  override toString() {
    return `SchemaError(${this.message})`
  }
}