Skip to content

TaggedClass

TaggedClass: <Self>(identifier?) => <Tag, Fields>(tag, fieldsOr, annotations?) => [Self] extends [never] ? “Missing `Self` generic - use `class Self extends TaggedClass<Self>()(“Tag”, { … })`” : TaggedClass<Self, Tag, object & Fields>

Defined in: node_modules/.pnpm/effect@3.15.2/node_modules/effect/dist/dts/Schema.d.ts:4389

Self = never

string

<Tag, Fields>(tag, fieldsOr, annotations?): [Self] extends [never] ? “Missing `Self` generic - use `class Self extends TaggedClass<Self>()(“Tag”, { … })`” : TaggedClass<Self, Tag, object & Fields>

Tag extends string

Fields extends Fields

Tag

Fields | HasFields<Fields>

ClassAnnotations<Self, { [K in string | number | symbol]: Type<{ _tag: tag<Tag> } & Fields>[K] }>

[Self] extends [never] ? “Missing `Self` generic - use `class Self extends TaggedClass<Self>()(“Tag”, { … })`” : TaggedClass<Self, Tag, object & Fields>

import { Schema } from "effect"
class MyClass extends Schema.TaggedClass<MyClass>("MyClass")("MyClass", {
a: Schema.String
}) {}

3.10.0