(self: MutableRef<number>): MutableRef<number>Increments a numeric MutableRef by 1 and returns the reference.
When to use
Use when you need an in-place MutableRef increment that returns the same
MutableRef.
Example (Incrementing numeric refs)
import { MutableRef } from "effect"
const counter = MutableRef.make(5)
// Increment the counter
MutableRef.increment(counter)
console.log(MutableRef.get(counter)) // 6
// Chain operations
MutableRef.increment(counter)
MutableRef.increment(counter)
console.log(MutableRef.get(counter)) // 8
// Useful for simple counting
const visits = MutableRef.make(0)
MutableRef.increment(visits) // User visited
MutableRef.increment(visits) // Another visit
console.log(MutableRef.get(visits)) // 2
// Returns the reference for chaining
const result = MutableRef.increment(counter)
console.log(result === counter) // trueexport const const increment: (
self: MutableRef<number>
) => MutableRef<number>
Increments a numeric MutableRef by 1 and returns the reference.
When to use
Use when you need an in-place MutableRef increment that returns the same
MutableRef.
Example (Incrementing numeric refs)
import { MutableRef } from "effect"
const counter = MutableRef.make(5)
// Increment the counter
MutableRef.increment(counter)
console.log(MutableRef.get(counter)) // 6
// Chain operations
MutableRef.increment(counter)
MutableRef.increment(counter)
console.log(MutableRef.get(counter)) // 8
// Useful for simple counting
const visits = MutableRef.make(0)
MutableRef.increment(visits) // User visited
MutableRef.increment(visits) // Another visit
console.log(MutableRef.get(visits)) // 2
// Returns the reference for chaining
const result = MutableRef.increment(counter)
console.log(result === counter) // true
increment = (self: MutableRef<number>(parameter) self: {
current: T;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
self: interface MutableRef<out T>A synchronous mutable reference that stores a current value.
When to use
Use to keep local mutable state in a stable, pipeable reference.
Details
Read or write the value directly through .current, or use the MutableRef
helpers for pipeable updates such as get, set, update, and
compareAndSet. All operations mutate the same reference in place.
Example (Creating and updating refs)
import { MutableRef } from "effect"
// Create a mutable reference
const ref: MutableRef.MutableRef<number> = MutableRef.make(42)
// Read the current value
console.log(ref.current) // 42
console.log(MutableRef.get(ref)) // 42
// Update the value
ref.current = 100
console.log(MutableRef.get(ref)) // 100
// Use with complex types
interface Config {
timeout: number
retries: number
}
const config: MutableRef.MutableRef<Config> = MutableRef.make({
timeout: 5000,
retries: 3
})
// Update through the interface
config.current = { timeout: 10000, retries: 5 }
console.log(config.current.timeout) // 10000
MutableRef<number>): interface MutableRef<out T>A synchronous mutable reference that stores a current value.
When to use
Use to keep local mutable state in a stable, pipeable reference.
Details
Read or write the value directly through .current, or use the MutableRef
helpers for pipeable updates such as get, set, update, and
compareAndSet. All operations mutate the same reference in place.
Example (Creating and updating refs)
import { MutableRef } from "effect"
// Create a mutable reference
const ref: MutableRef.MutableRef<number> = MutableRef.make(42)
// Read the current value
console.log(ref.current) // 42
console.log(MutableRef.get(ref)) // 42
// Update the value
ref.current = 100
console.log(MutableRef.get(ref)) // 100
// Use with complex types
interface Config {
timeout: number
retries: number
}
const config: MutableRef.MutableRef<Config> = MutableRef.make({
timeout: 5000,
retries: 3
})
// Update through the interface
config.current = { timeout: 10000, retries: 5 }
console.log(config.current.timeout) // 10000
MutableRef<number> => const update: {
<T>(f: (value: T) => T): (
self: MutableRef<T>
) => MutableRef<T>
<T>(
self: MutableRef<T>,
f: (value: T) => T
): MutableRef<T>
}
update(self: MutableRef<number>(parameter) self: {
current: T;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
self, (n: numbern) => n: numbern + 1)