(u: unknown): u is TxPubSub<unknown>Checks whether the given value is a TxPubSub.
Example (Checking for a TxPubSub)
import { TxPubSub } from "effect"
declare const someValue: unknown
if (TxPubSub.isTxPubSub(someValue)) {
console.log("This is a TxPubSub")
}guards
Source effect/TxPubSub.ts:6841 lines
export const const isTxPubSub: (
u: unknown
) => u is TxPubSub<unknown>
Checks whether the given value is a TxPubSub.
Example (Checking for a TxPubSub)
import { TxPubSub } from "effect"
declare const someValue: unknown
if (TxPubSub.isTxPubSub(someValue)) {
console.log("This is a TxPubSub")
}
isTxPubSub = (u: unknownu: unknown): u: unknownu is interface TxPubSub<in out A>A TxPubSub represents a transactional publish/subscribe hub that broadcasts messages
to all current subscribers using Software Transactional Memory (STM) semantics.
Example (Subscribing to a transactional pub/sub)
import { Effect, TxPubSub, TxQueue } from "effect"
const program = Effect.gen(function*() {
const hub = yield* TxPubSub.unbounded<string>()
yield* Effect.scoped(
Effect.gen(function*() {
const sub = yield* TxPubSub.subscribe(hub)
yield* TxPubSub.publish(hub, "hello")
const msg = yield* TxQueue.take(sub)
console.log(msg) // "hello"
})
)
})
TxPubSub<unknown> => hasProperty<"~effect/transactions/TxPubSub">(self: unknown, property: "~effect/transactions/TxPubSub"): self is { [K in "~effect/transactions/TxPubSub"]: unknown; } (+1 overload)Checks whether a value has a given property key.
When to use
Use when you need a Predicate guard for property access on unknown
values with a simple structural object check.
Details
Uses the in operator and isObjectKeyword. This does not check property
value types.
Example (Guarding object properties)
import { Predicate } from "effect"
const hasName = Predicate.hasProperty("name")
const data: unknown = { name: "Ada" }
if (hasName(data)) {
console.log(data.name)
}
hasProperty(u: unknownu, const TypeId: "~effect/transactions/TxPubSub"TypeId)