From 341fba875d96b9db4053877fa23a37d59b4b57e6 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Mon, 25 Nov 2019 14:40:48 +0100 Subject: [PATCH] feat: make getters optional --- __tests__/tds/store.test-d.ts | 12 ++++++++---- src/index.ts | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/__tests__/tds/store.test-d.ts b/__tests__/tds/store.test-d.ts index 633686d8..a401b359 100644 --- a/__tests__/tds/store.test-d.ts +++ b/__tests__/tds/store.test-d.ts @@ -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) diff --git a/src/index.ts b/src/index.ts index 0377b9e4..4d47b42e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -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 ): CombinedStore { const state: Ref = ref(buildState()) -- 2.47.2