Skip to main content Link Search Menu Expand Document (external link)

HashMap.ts overview

Since v2.0.0


Exports Grouped by Category


constructors

empty

Creates a new HashMap.

Signature

declare const empty: <K = never, V = never>() => HashMap<K, V>

Source

Since v2.0.0

fromIterable

Creates a new HashMap from an iterable collection of key/value pairs.

Signature

declare const fromIterable: <K, V>(entries: Iterable<readonly [K, V]>) => HashMap<K, V>

Source

Since v2.0.0

make

Constructs a new HashMap from an array of key/value pairs.

Signature

declare const make: <Entries extends ReadonlyArray<readonly [any, any]>>(
  ...entries: Entries
) => HashMap<
  Entries[number] extends readonly [infer K, any] ? K : never,
  Entries[number] extends readonly [any, infer V] ? V : never
>

Source

Since v2.0.0

elements

every

Checks if all entries in a hashmap meets a specific condition.

Signature

declare const every: {
  <K, A>(predicate: (a: NoInfer<A>, k: K) => boolean): (self: HashMap<K, A>) => boolean
  <K, A>(self: HashMap<K, A>, predicate: (a: A, k: K) => boolean): boolean
}

Source

Since v3.14.0

findFirst

Returns the first element that satisfies the specified predicate, or None if no such element exists.

Signature

declare const findFirst: {
  <K, A, B extends A>(predicate: (a: NoInfer<A>, k: K) => a is B): (self: HashMap<K, A>) => Option<[K, B]>
  <K, A>(predicate: (a: NoInfer<A>, k: K) => boolean): (self: HashMap<K, A>) => Option<[K, A]>
  <K, A, B extends A>(self: HashMap<K, A>, predicate: (a: A, k: K) => a is B): Option<[K, B]>
  <K, A>(self: HashMap<K, A>, predicate: (a: A, k: K) => boolean): Option<[K, A]>
}

Source

Since v2.0.0

get

Safely lookup the value for the specified key in the HashMap using the internal hashing function.

Signature

declare const get: {
  <K1 extends K, K>(key: K1): <V>(self: HashMap<K, V>) => Option<V>
  <K1 extends K, K, V>(self: HashMap<K, V>, key: K1): Option<V>
}

Source

Since v2.0.0

getHash

Lookup the value for the specified key in the HashMap using a custom hash.

Signature

declare const getHash: {
  <K1 extends K, K>(key: K1, hash: number): <V>(self: HashMap<K, V>) => Option<V>
  <K1 extends K, K, V>(self: HashMap<K, V>, key: K1, hash: number): Option<V>
}

Source

Since v2.0.0

has

Checks if the specified key has an entry in the HashMap.

Signature

declare const has: {
  <K1 extends K, K>(key: K1): <K, V>(self: HashMap<K, V>) => boolean
  <K1 extends K, K, V>(self: HashMap<K, V>, key: K1): boolean
}

Source

Since v2.0.0

hasHash

Checks if the specified key has an entry in the HashMap using a custom hash.

Signature

declare const hasHash: {
  <K1 extends K, K>(key: K1, hash: number): <V>(self: HashMap<K, V>) => boolean
  <K1 extends K, K, V>(self: HashMap<K, V>, key: K1, hash: number): boolean
}

Source

Since v2.0.0

isEmpty

Checks if the HashMap contains any entries.

Signature

declare const isEmpty: <K, V>(self: HashMap<K, V>) => boolean

Source

Since v2.0.0

some

Checks if any entry in a hashmap meets a specific condition.

Signature

declare const some: {
  <K, A>(predicate: (a: NoInfer<A>, k: K) => boolean): (self: HashMap<K, A>) => boolean
  <K, A>(self: HashMap<K, A>, predicate: (a: A, k: K) => boolean): boolean
}

Source

Since v3.13.0

filtering

compact

Filters out None values from a HashMap of Optionss.

Signature

declare const compact: <K, A>(self: HashMap<K, Option<A>>) => HashMap<K, A>

Source

Since v2.0.0

filter

Filters entries out of a HashMap using the specified predicate.

Signature

declare const filter: {
  <K, A, B extends A>(f: (a: NoInfer<A>, k: K) => a is B): (self: HashMap<K, A>) => HashMap<K, B>
  <K, A>(f: (a: NoInfer<A>, k: K) => boolean): (self: HashMap<K, A>) => HashMap<K, A>
  <K, A, B extends A>(self: HashMap<K, A>, f: (a: A, k: K) => a is B): HashMap<K, B>
  <K, A>(self: HashMap<K, A>, f: (a: A, k: K) => boolean): HashMap<K, A>
}

Source

Since v2.0.0

filterMap

Maps over the entries of the HashMap using the specified partial function and filters out None values.

Signature

declare const filterMap: {
  <A, K, B>(f: (value: A, key: K) => Option<B>): (self: HashMap<K, A>) => HashMap<K, B>
  <K, A, B>(self: HashMap<K, A>, f: (value: A, key: K) => Option<B>): HashMap<K, B>
}

Source

Since v2.0.0

folding

reduce

Reduces the specified state over the entries of the HashMap.

Signature

declare const reduce: {
  <Z, V, K>(zero: Z, f: (accumulator: Z, value: V, key: K) => Z): (self: HashMap<K, V>) => Z
  <K, V, Z>(self: HashMap<K, V>, zero: Z, f: (accumulator: Z, value: V, key: K) => Z): Z
}

Source

Since v2.0.0

getter

keySet

Returns a HashSet of keys within the HashMap.

Signature

declare const keySet: <K, V>(self: HashMap<K, V>) => HashSet<K>

Source

Since v2.0.0

getters

entries

Returns an IterableIterator of the entries within the HashMap.

Signature

declare const entries: <K, V>(self: HashMap<K, V>) => IterableIterator<[K, V]>

Source

Since v2.0.0

keys

Returns an IterableIterator of the keys within the HashMap.

Signature

declare const keys: <K, V>(self: HashMap<K, V>) => IterableIterator<K>

Source

Since v2.0.0

size

Returns the number of entries within the HashMap.

Signature

declare const size: <K, V>(self: HashMap<K, V>) => number

Source

Since v2.0.0

toEntries

Returns an Array<[K, V]> of the entries within the HashMap.

Signature

declare const toEntries: <K, V>(self: HashMap<K, V>) => Array<[K, V]>

Source

Since v2.0.0

toValues

Returns an Array of the values within the HashMap.

Signature

declare const toValues: <K, V>(self: HashMap<K, V>) => Array<V>

Source

Since v3.13.0

values

Returns an IterableIterator of the values within the HashMap.

Signature

declare const values: <K, V>(self: HashMap<K, V>) => IterableIterator<V>

Source

Since v2.0.0

mapping

map

Maps over the entries of the HashMap using the specified function.

Signature

declare const map: {
  <A, V, K>(f: (value: V, key: K) => A): (self: HashMap<K, V>) => HashMap<K, A>
  <K, V, A>(self: HashMap<K, V>, f: (value: V, key: K) => A): HashMap<K, A>
}

Source

Since v2.0.0

models

HashMap (interface)

Signature

export interface HashMap<out Key, out Value> extends Iterable<[Key, Value]>, Equal, Pipeable, Inspectable {
  readonly [TypeId]: TypeId
}

Source

Since v2.0.0

refinements

isHashMap

Signature

declare const isHashMap: {
  <K, V>(u: Iterable<readonly [K, V]>): u is HashMap<K, V>
  (u: unknown): u is HashMap<unknown, unknown>
}

Source

Since v2.0.0

sequencing

flatMap

Chains over the entries of the HashMap using the specified function.

NOTE: the hash and equal of both maps have to be the same.

Signature

declare const flatMap: {
  <A, K, B>(f: (value: A, key: K) => HashMap<K, B>): (self: HashMap<K, A>) => HashMap<K, B>
  <K, A, B>(self: HashMap<K, A>, f: (value: A, key: K) => HashMap<K, B>): HashMap<K, B>
}

Source

Since v2.0.0

symbol

TypeId (type alias)

Signature

type TypeId = typeof TypeId

Source

Since v2.0.0

traversing

forEach

Applies the specified function to the entries of the HashMap.

Signature

declare const forEach: {
  <V, K>(f: (value: V, key: K) => void): (self: HashMap<K, V>) => void
  <V, K>(self: HashMap<K, V>, f: (value: V, key: K) => void): void
}

Source

Since v2.0.0

unsafe

unsafeGet

Unsafely lookup the value for the specified key in the HashMap using the internal hashing function.

Signature

declare const unsafeGet: {
  <K1 extends K, K>(key: K1): <V>(self: HashMap<K, V>) => V
  <K1 extends K, K, V>(self: HashMap<K, V>, key: K1): V
}

Source

Since v2.0.0

utils

HashMap (namespace)

Source

Since v2.0.0

UpdateFn (type alias)

Signature

type UpdateFn<V> = (option: Option<V>) => Option<V>

Source

Since v2.0.0

Key (type alias)

This type-level utility extracts the key type K from a HashMap<K, V> type.

Example

import { HashMap } from "effect"

declare const hm: HashMap.HashMap<string, number>

// $ExpectType string
type K = HashMap.HashMap.Key<typeof hm>

Signature

type Key<T> = [T] extends [HashMap<infer _K, infer _V>] ? _K : never

Source

Since v2.0.0

Value (type alias)

This type-level utility extracts the value type V from a HashMap<K, V> type.

Example

import { HashMap } from "effect"

declare const hm: HashMap.HashMap<string, number>

// $ExpectType number
type V = HashMap.HashMap.Value<typeof hm>

Signature

type Value<T> = [T] extends [HashMap<infer _K, infer _V>] ? _V : never

Source

Since v2.0.0

Entry (type alias)

This type-level utility extracts the entry type [K, V] from a HashMap<K, V> type.

Example

import { HashMap } from "effect"

declare const hm: HashMap.HashMap<string, number>

// $ExpectType [string, number]
type V = HashMap.HashMap.Entry<typeof hm>

Signature

type Entry<T> = [Key<T>, Value<T>]

Source

Since v3.9.0

beginMutation

Marks the HashMap as mutable.

Signature

declare const beginMutation: <K, V>(self: HashMap<K, V>) => HashMap<K, V>

Source

Since v2.0.0

endMutation

Marks the HashMap as immutable.

Signature

declare const endMutation: <K, V>(self: HashMap<K, V>) => HashMap<K, V>

Source

Since v2.0.0

modify

Updates the value of the specified key within the HashMap if it exists.

Signature

declare const modify: {
  <K, V>(key: K, f: (v: V) => V): (self: HashMap<K, V>) => HashMap<K, V>
  <K, V>(self: HashMap<K, V>, key: K, f: (v: V) => V): HashMap<K, V>
}

Source

Since v2.0.0

modifyAt

Set or remove the specified key in the HashMap using the specified update function. The value of the specified key will be computed using the provided hash.

The update function will be invoked with the current value of the key if it exists, or None if no such value exists.

Signature

declare const modifyAt: {
  <K, V>(key: K, f: HashMap.UpdateFn<V>): (self: HashMap<K, V>) => HashMap<K, V>
  <K, V>(self: HashMap<K, V>, key: K, f: HashMap.UpdateFn<V>): HashMap<K, V>
}

Source

Since v2.0.0

modifyHash

Alter the value of the specified key in the HashMap using the specified update function. The value of the specified key will be computed using the provided hash.

The update function will be invoked with the current value of the key if it exists, or None if no such value exists.

This function will always either update or insert a value into the HashMap.

Signature

declare const modifyHash: {
  <K, V>(key: K, hash: number, f: HashMap.UpdateFn<V>): (self: HashMap<K, V>) => HashMap<K, V>
  <K, V>(self: HashMap<K, V>, key: K, hash: number, f: HashMap.UpdateFn<V>): HashMap<K, V>
}

Source

Since v2.0.0

mutate

Mutates the HashMap within the context of the provided function.

Signature

declare const mutate: {
  <K, V>(f: (self: HashMap<K, V>) => void): (self: HashMap<K, V>) => HashMap<K, V>
  <K, V>(self: HashMap<K, V>, f: (self: HashMap<K, V>) => void): HashMap<K, V>
}

Source

Since v2.0.0

remove

Remove the entry for the specified key in the HashMap using the internal hashing function.

Signature

declare const remove: {
  <K>(key: K): <V>(self: HashMap<K, V>) => HashMap<K, V>
  <K, V>(self: HashMap<K, V>, key: K): HashMap<K, V>
}

Source

Since v2.0.0

removeMany

Removes all entries in the HashMap which have the specified keys.

Signature

declare const removeMany: {
  <K>(keys: Iterable<K>): <V>(self: HashMap<K, V>) => HashMap<K, V>
  <K, V>(self: HashMap<K, V>, keys: Iterable<K>): HashMap<K, V>
}

Source

Since v2.0.0

set

Sets the specified key to the specified value using the internal hashing function.

Signature

declare const set: {
  <K, V>(key: K, value: V): (self: HashMap<K, V>) => HashMap<K, V>
  <K, V>(self: HashMap<K, V>, key: K, value: V): HashMap<K, V>
}

Source

Since v2.0.0

union

Performs a union of this HashMap and that HashMap.

Signature

declare const union: {
  <K1, V1>(that: HashMap<K1, V1>): <K0, V0>(self: HashMap<K0, V0>) => HashMap<K1 | K0, V1 | V0>
  <K0, V0, K1, V1>(self: HashMap<K0, V0>, that: HashMap<K1, V1>): HashMap<K0 | K1, V0 | V1>
}

Source

Since v2.0.0