class Error1 extends Data.TaggedError("error1") {
}
class Error2 extends Data.TaggedError("error2") {
}
declare const eff: Effect<void, Error1 | Error2>
pipe(
eff,
Effect.catchTag(
"error1",
(err) => {
// err is Error1 :)
console.log("error1", err)
return Effect.succeed(undefined)
})
)
pipe(
eff,
Effect.catchTag(
"error1",
(err) =>
// err is Error1 :)
Effect.gen(function*() {
console.log("error1", err)
})
)
)
pipe(
eff,
Effect.catchTag(
"error1",
Effect.fnUntraced(function*(err) {
// err is any :(
console.log("error1", err)
})
)
)
class Error1 extends Data.TaggedError("error1") {
}
class Error2 extends Data.TaggedError("error2") {
}
declare const eff: Effect<void, Error1 | Error2>
pipe(
eff,
Effect.catchTag(
"error1",
(err) => {
// err is Error1 :)
console.log("error1", err)
return Effect.succeed(undefined)
})
)
pipe(
eff,
Effect.catchTag(
"error1",
(err) =>
// err is Error1 :)
Effect.gen(function*() {
console.log("error1", err)
})
)
)
pipe(
eff,
Effect.catchTag(
"error1",
Effect.fnUntraced(function*(err) {
// err is any :(
console.log("error1", err)
})
)
)