]> git.ipfire.org Git - thirdparty/vuejs/pinia.git/commitdiff
feat: make getters optional
authorEduardo San Martin Morote <posva13@gmail.com>
Mon, 25 Nov 2019 13:40:48 +0000 (14:40 +0100)
committerEduardo San Martin Morote <posva13@gmail.com>
Mon, 25 Nov 2019 13:40:48 +0000 (14:40 +0100)
__tests__/tds/store.test-d.ts
src/index.ts

index 633686d8f8c7fe23ebed18172ed9fd8682968e81..a401b3594c208cd816cb658cf85797be38626189 100644 (file)
@@ -1,6 +1,10 @@
 import { createStore } from '../../src'
-import { expectType } from 'tsd'
+import { expectType, expectError } from 'tsd'
 
-expectType<{ a: 'on' | 'off' }>(
-  createStore('name', { a: 'on' as 'on' | 'off' }).state
-)
+const store = createStore('name', () => ({ a: 'on' as 'on' | 'off' }), {
+  upper: state => state.a.toUpperCase(),
+})
+
+expectType<{ a: 'on' | 'off' }>(store.state)
+
+expectError(() => store.nonExistant)
index 0377b9e42794388d2b904055fb689c173fe9e88f..4d47b42e156b75a74717579c3f2afef22ddca7f7 100644 (file)
@@ -54,7 +54,8 @@ export function createStore<
 >(
   id: Id,
   buildState: () => S,
-  getters: G
+  // @ts-ignore an empty object is valid for Record
+  getters: G = {}
   // methods: Record<string | symbol, StoreMethod>
 ): CombinedStore<Id, S, G> {
   const state: Ref<S> = ref(buildState())