<K extends string>(tag: K): (self: unknown) => self is { _tag: K }
<K extends string>(self: unknown, tag: K): self is { _tag: K }Checks whether a value has a _tag property equal to the given tag.
When to use
Use when you model tagged unions with a _tag field and want a quick
Predicate guard for tagged values.
Details
Uses hasProperty and strict equality on _tag.
Example (Guarding tagged values)
import { Predicate } from "effect"
const isOk = Predicate.isTagged("Ok")
console.log(isOk({ _tag: "Ok", value: 1 }))guardshasProperty
Source effect/Predicate.ts:11667 lines
export const const isTagged: {
<K extends string>(tag: K): (
self: unknown
) => self is {
_tag: K
}
<K extends string>(
self: unknown,
tag: K
): self is {
_tag: K
}
}
Checks whether a value has a _tag property equal to the given tag.
When to use
Use when you model tagged unions with a _tag field and want a quick
Predicate guard for tagged values.
Details
Uses hasProperty and strict equality on _tag.
Example (Guarding tagged values)
import { Predicate } from "effect"
const isOk = Predicate.isTagged("Ok")
console.log(isOk({ _tag: "Ok", value: 1 }))
isTagged: {
<function (type parameter) K in <K extends string>(tag: K): (self: unknown) => self is {
_tag: K;
}
K extends string>(tag: K extends stringtag: function (type parameter) K in <K extends string>(tag: K): (self: unknown) => self is {
_tag: K;
}
K): (self: unknownself: unknown) => self: unknownself is { _tag: K extends string_tag: function (type parameter) K in <K extends string>(tag: K): (self: unknown) => self is {
_tag: K;
}
K }
<function (type parameter) K in <K extends string>(self: unknown, tag: K): self is {
_tag: K;
}
K extends string>(self: unknownself: unknown, tag: K extends stringtag: function (type parameter) K in <K extends string>(self: unknown, tag: K): self is {
_tag: K;
}
K): self: unknownself is { _tag: K extends string_tag: function (type parameter) K in <K extends string>(self: unknown, tag: K): self is {
_tag: K;
}
K }
} = import dualdual(
2,
<function (type parameter) K in <K extends string>(self: unknown, tag: K): self is {
_tag: K;
}
K extends string>(self: unknownself: unknown, tag: K extends stringtag: function (type parameter) K in <K extends string>(self: unknown, tag: K): self is {
_tag: K;
}
K): self: unknownself is { _tag: K extends string_tag: function (type parameter) K in <K extends string>(self: unknown, tag: K): self is {
_tag: K;
}
K } => const hasProperty: <"_tag">(self: unknown, property: "_tag") => self is { [K in "_tag"]: unknown; } (+1 overload)hasProperty(self: unknownself, "_tag") && self: {
_tag: unknown
}
self["_tag"] === tag: K extends stringtag
)Referenced by 6 symbols