import { printType, expectAssignable, expectType } from 'tsd'; import { Updux, ActionGenerator, action } from '.'; const dux = new Updux({}); expectType( dux.initial ); () => { const dux = new Updux<{a: string}>({}); expectAssignable<{initial: {a:string}}>(dux); } // ActionGenerator () => { let a = action('a'); expectAssignable<{type: string}>(a); expectAssignable<() => {payload?: unknown}>(a); let b = action('b', (() => ({})) as unknown as (name: string) => { name: string } ); const c = b("foo"); expectAssignable<{payload: { name: string } }>(c); }