Following is the advantages that differentiate it from other immutable libraries:
- It leaves your JS objects completely untouched (except the optional deep-freeze), it does not wrap around nor add any methods/properties to your JS objects.
- No magic keywords, such as $set, $push introduced by Immutability Helpers
- It works really well with TypeScript, because of its generic type argument inference; and since you are working with POJO (not the wrapper objects), you can utilize the full power of TypeScript: IntelliSense, type checking, and refactoring, etc.
- Works well with other libraries, such as lodash and underscore, please refer to the example 4 on its homepage.
- Extremely simple API (only one method), however since it works with other libraries such as lodash, it provides all the functionalities you need plus immutability.