Skip to content

Commit

Permalink
fix types of defer for on
Browse files Browse the repository at this point in the history
  • Loading branch information
elite174 committed Sep 16, 2023
1 parent f84f356 commit f694830
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
2 changes: 1 addition & 1 deletion packages/solid/src/reactive/signal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -917,7 +917,7 @@ export function on<S, Next extends Prev, Prev = Next>(
export function on<S, Next extends Prev, Prev = Next>(
deps: AccessorArray<S> | Accessor<S>,
fn: OnEffectFunction<S, undefined | NoInfer<Prev>, Next>,
options: OnOptions & { defer: true }
options: OnOptions | { defer: true }
): EffectFunction<undefined | NoInfer<Next>>;
export function on<S, Next extends Prev, Prev = Next>(
deps: AccessorArray<S> | Accessor<S>,
Expand Down
19 changes: 19 additions & 0 deletions packages/solid/test/signals.type-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,25 @@ const onMemo3 = createMemo(
);
// @ts-expect-error when deferred the type includes undefined
const onMemo4: Accessor<number> = onMemo3;
// Allow passing boolean to defer
const memoCreator = (defer: boolean) =>
createMemo(
on(
[one, two],
(input, prevInput, prev) => {
const [one, two]: [number, boolean] = input;
if (prevInput) {
const [prevOne, prevTwo]: [number, boolean] = prevInput;
}
// @ts-expect-error FIXME computed type is unknown, should be `number`.
const _prev: number = prev;
return one + +two;
},
{ defer }
)
);
const memoCreator1: Accessor<number | undefined> = memoCreator(true);
const memoCreator2: Accessor<number | undefined> = memoCreator(false);

//////////////////////////////////////////////////////////////////////////
// createSelector ////////////////////////////////////////////////////////
Expand Down

0 comments on commit f694830

Please sign in to comment.