refactor(types): add readonly store and refine useStore typing #1675
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related Issues or Discussions
#1589
Fixes #
Allows the creation of read only zustand stores compatible with
useStore
.Use case
I'm developing a library and I wanted to expose a read only zustand store.
I've created a function called
asReadOnly
to create a zustand store withoutdestroy
andsetState
.Unfortunately I couldn't make it work with
useStore
so I had to come up with a workaround (useSelector
).I'd like to remove
useSelector
fromasReadOnly
output and useuseStore
without having type issues.asReadOnly
asReadOnly usage
Summary
ReadOnlyStoreApi
a subset of StoreApi that can be used to type read only versions of zustand stores.checkTypes(...)
.Check List
yarn run prettier
for formatting code and docs