---
type: snippet
tags: ['javascript', 'immer', 'Map', 'Set']
status: release
ctime: 2023-03-13
mtime: 2024-03-22
---

Immer가 생성하는 맵과 세트는 인위적으로 불변으로 만들어집니다. 즉, 프로듀서 외부에서 세트, 클리어 등과 같은 변경 메서드를 시도할 때 예외(throw an exception)가 발생합니다.

```js
test('Map and Set', () => {
  const baseMap = new Map();

  const nextBaseMap = create(baseMap, (draft) => {
    draft.set('a', 1);
  });

  expect(nextBaseMap).toMatchInlineSnapshot(`
    Map {
      "a" => 1,
    }
  `);
});
```

---

- [Map and Set | Immer](https://immerjs.github.io/immer/map-set/)