]> git.ipfire.org Git - thirdparty/vuejs/pinia.git/commitdiff
fix(types): mapWritableState array
authorEduardo San Martin Morote <posva13@gmail.com>
Tue, 21 Feb 2023 07:52:29 +0000 (08:52 +0100)
committerEduardo San Martin Morote <posva13@gmail.com>
Tue, 21 Feb 2023 07:52:29 +0000 (08:52 +0100)
Fix #2014

packages/pinia/src/mapHelpers.ts
packages/pinia/test-dts/mapHelpers.test-d.ts

index 6e1b5b704b3d59ddbc74a1e699b2e17b9a3af963..33803a0080fe3f5c0d18bb3c3e541d24aa4dec2b 100644 (file)
@@ -467,7 +467,12 @@ export function mapWritableState<
 >(
   useStore: StoreDefinition<Id, S, G, A>,
   keys: readonly Keys[]
-): { [K in Keys]: S[K] }
+): {
+  [K in Keys]: {
+    get: () => S[K]
+    set: (value: S[K]) => any
+  }
+}
 /**
  * Allows using state and getters from one store without using the composition
  * API (`setup()`) by generating an object to be spread in the `computed` field
index 974e709459252a5b4e4d172e5ddc4984dc6ef13e..58ca94366a26997ba59baada69eb4c104ed05744 100644 (file)
@@ -90,7 +90,12 @@ expectType<{
   newToggleA: () => void
 }>(mapActions(useStore, { newSetToggle: 'setToggle', newToggleA: 'toggleA' }))
 
-expectType<{ a: 'on' | 'off' }>(mapWritableState(useStore, ['a']))
+expectType<{
+  a: {
+    get: () => 'on' | 'off'
+    set: (v: 'on' | 'off') => any
+  }
+}>(mapWritableState(useStore, ['a']))
 // @ts-expect-error: only defined in array
 mapWritableState(useStore, ['a']).b