# Operators

Store has multiple operators:

* **Select\<T>** - select peace of the state by provided path. Returns new observable. `this.store.select(['todos'])`.**T** parameter is optional and falls back to any but recommended and specifies type of sub-selected state.
* **Initialize** - initialize store with with new state. Returns observable holding initialized state. `this.store.initialize(['todos', 'filter'], {newItem: false, usedItem: true})`
* **Reset** - resets selected peace of state to its initial state: `this.store.select(['todos']).reset()`&#x20;
* **Map** - transforms and returns state value.
* **Snapshot** - returns snaphot of the current state.
* **toSignal** - converts state to signal.
* **Update** - updates selected state.&#x20;

```typescript
this.store.update((state: Map<any, any>) => {
        state.set('itemToStore', 'changed value');
});
```

According to immutableJS there is second parameter that can be passed to update function `wrapToWithMutations` It is used when you want to do multiple updates before triggering mutation. <https://stackoverflow.com/questions/28510753/when-should-i-use-withmutations-on-a-map-in-immutable-js>
