- TaggedClass<Self>(): (<Tag, Fields>(tag, fields) => [unknown] extends [Self]
? "Missing `Self` generic - use `class Self extends TaggedClass<Self>()(\"Tag\", { ... })`"
: S.Class<Simplify<{
_tag: Tag;
} & {
readonly [K in string | number | symbol]: From<Fields[K]>
} & {
readonly [K_1 in string | number | symbol]?: From<Fields[K_1]>
}>, Simplify<{
_tag: Tag;
} & {
readonly [K_2 in string | number | symbol]: To<Fields[K_2]>
} & {
readonly [K_3 in string | number | symbol]?: To<Fields[K_3]>
}>, Simplify<ToStruct<Fields>>, Self, Case>) Returns (<Tag, Fields>(tag, fields) => [unknown] extends [Self]
? "Missing `Self` generic - use `class Self extends TaggedClass<Self>()(\"Tag\", { ... })`"
: S.Class<Simplify<{
_tag: Tag;
} & {
readonly [K in string | number | symbol]: From<Fields[K]>
} & {
readonly [K_1 in string | number | symbol]?: From<Fields[K_1]>
}>, Simplify<{
_tag: Tag;
} & {
readonly [K_2 in string | number | symbol]: To<Fields[K_2]>
} & {
readonly [K_3 in string | number | symbol]?: To<Fields[K_3]>
}>, Simplify<ToStruct<Fields>>, Self, Case>)
- <Tag, Fields>(tag, fields): [unknown] extends [Self]
? "Missing `Self` generic - use `class Self extends TaggedClass<Self>()(\"Tag\", { ... })`"
: S.Class<Simplify<{
_tag: Tag;
} & {
readonly [K in string | number | symbol]: From<Fields[K]>
} & {
readonly [K_1 in string | number | symbol]?: From<Fields[K_1]>
}>, Simplify<{
_tag: Tag;
} & {
readonly [K_2 in string | number | symbol]: To<Fields[K_2]>
} & {
readonly [K_3 in string | number | symbol]?: To<Fields[K_3]>
}>, Simplify<ToStruct<Fields>>, Self, Case> Returns [unknown] extends [Self]
? "Missing `Self` generic - use `class Self extends TaggedClass<Self>()(\"Tag\", { ... })`"
: S.Class<Simplify<{
_tag: Tag;
} & {
readonly [K in string | number | symbol]: From<Fields[K]>
} & {
readonly [K_1 in string | number | symbol]?: From<Fields[K_1]>
}>, Simplify<{
_tag: Tag;
} & {
readonly [K_2 in string | number | symbol]: To<Fields[K_2]>
} & {
readonly [K_3 in string | number | symbol]?: To<Fields[K_3]>
}>, Simplify<ToStruct<Fields>>, Self, Case>
Since
1.0.0