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

HashMap overview

Added in v1.0.0


Table of contents


constructors

empty

Creates a new HashMap.

Signature

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

Added in v1.0.0

fromIterable

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

Signature

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

Added in v1.0.0

make

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

Signature

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

Added in v1.0.0

elements

findFirst

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

Signature

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

Added in v1.0.0

get

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

Signature

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

Added in v1.0.0

getHash

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

Signature

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

Added in v1.0.0

has

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

Signature

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

Added in v1.0.0

hasHash

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

Signature

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

Added in v1.0.0

isEmpty

Checks if the HashMap contains any entries.

Signature

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

Added in v1.0.0

filtering

compact

Filters out None values from a HashMap of Optionss.

Signature

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

Added in v1.0.0

filter

Filters entries out of a HashMap using the specified predicate.

Signature

export declare const filter: {
  <K, A, B extends A>(f: (a: A, k: K) => a is B): (self: HashMap<K, A>) => HashMap<K, B>
  <K, A>(f: (a: 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>
}

Added in v1.0.0

filterMap

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

Signature

export 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>
}

Added in v1.0.0

folding

reduce

Reduces the specified state over the entries of the HashMap.

Signature

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

Added in v1.0.0

getter

keySet

Returns a HashSet of keys within the HashMap.

Signature

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

Added in v1.0.0

getters

keys

Returns an IterableIterator of the keys within the HashMap.

Signature

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

Added in v1.0.0

size

Returns the number of entries within the HashMap.

Signature

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

Added in v1.0.0

values

Returns an IterableIterator of the values within the HashMap.

Signature

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

Added in v1.0.0

mapping

map

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

Signature

export 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>
}

Added in v1.0.0

models

HashMap (interface)

Signature

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

Added in v1.0.0

refinements

isHashMap

Signature

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

Added in v1.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

export 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>
}

Added in v1.0.0

symbol

TypeId (type alias)

Signature

export type TypeId = typeof TypeId

Added in v1.0.0

traversing

forEach

Applies the specified function to the entries of the HashMap.

Signature

export 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
}

Added in v1.0.0

unsafe

unsafeGet

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

Signature

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

Added in v1.0.0

utils

HashMap (namespace)

Added in v1.0.0

UpdateFn (type alias)

Signature

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

Added in v1.0.0

beginMutation

Marks the HashMap as mutable.

Signature

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

Added in v1.0.0

endMutation

Marks the HashMap as immutable.

Signature

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

Added in v1.0.0

modify

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

Signature

export 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>
}

Added in v1.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

export 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>
}

Added in v1.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

export 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>
}

Added in v1.0.0

mutate

Mutates the HashMap within the context of the provided function.

Signature

export 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>
}

Added in v1.0.0

remove

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

Signature

export 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>
}

Added in v1.0.0

removeMany

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

Signature

export 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>
}

Added in v1.0.0

set

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

Signature

export 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>
}

Added in v1.0.0

union

Performs a union of this HashMap and that HashMap.

Signature

export 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>
}

Added in v1.0.0