Skip to content

Commit 9a41659

Browse files
committed
feat(entity): strengthen typing of getInitialState to catch invalid additional state properties
1 parent 92a68bc commit 9a41659

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

modules/entity/src/entity_state.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ export function getInitialEntityState<V>(): EntityState<V> {
99

1010
export function createInitialStateFactory<V>() {
1111
function getInitialState(): EntityState<V>;
12-
function getInitialState<S extends object>(
13-
additionalState: S
14-
): EntityState<V> & S;
12+
function getInitialState<S extends EntityState<V>>(
13+
additionalState: Omit<S, keyof EntityState<V>>
14+
): S;
1515
function getInitialState(additionalState: any = {}): any {
1616
return Object.assign(getInitialEntityState(), additionalState);
1717
}

modules/entity/src/models.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,9 @@ export interface EntityAdapter<T> extends EntityStateAdapter<T> {
110110
selectId: IdSelector<T>;
111111
sortComparer: false | Comparer<T>;
112112
getInitialState(): EntityState<T>;
113-
getInitialState<S extends object>(state: S): EntityState<T> & S;
113+
getInitialState<S extends EntityState<T>>(
114+
state: Omit<S, keyof EntityState<T>>
115+
): S;
114116
getSelectors(): EntitySelectors<T, EntityState<T>>;
115117
getSelectors<V>(
116118
selectState: (state: V) => EntityState<T>

0 commit comments

Comments
 (0)