Get started
A guided tour of Immutable.js, meant to be read in order. Each page is short and stands on its own, so you can also jump to whichever one answers the question you have right now.
Installation
Add Immutable.js to your project with your package manager or a script tag, with first class TypeScript support built in.
Why Immutable.js?
What persistent data structures are, why they make application state simpler, and what Immutable.js brings to the table.
JavaScript-first API
The collections mirror Array, Map and Set, and convert to and from plain JavaScript objects and arrays.
Nested structures
Read and update deeply nested data with getIn, setIn, updateIn and mergeDeep.
Equality as values
Two collections holding the same values are equal. How that differs from reference equality, and what it costs.
Batching mutations
Apply a batch of changes to a temporary mutable copy with withMutations, and pay for a single new collection.
Lazy Seq
Chain map, filter and friends without ever building the intermediate collections — even over infinite sequences.
filter, partition & groupBy
Three ways to split a collection into parts, and how to pick the right one.
How to read these docs
The type notation used across the API reference, and a cheatsheet of how the collections inherit from each other.
Tools & resources
Third-party libraries built around Immutable.js, and where to ask questions or contribute.