Skip to content

Commit 29123a1

Browse files
authored
Merge pull request #42 from takker99/use-derived-class
👍 Use a derived class at listener arguments
2 parents f26769f + 9fe855c commit 29123a1

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

baseStore.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
1-
export type BaseStoreListenerInit = { store: BaseStore; event: string };
2-
export type BaseStoreListener = (init: BaseStoreListenerInit) => void;
1+
export type BaseStoreListenerInit<Derived extends BaseStore> = {
2+
store: Derived;
3+
event: string;
4+
};
5+
export type BaseStoreListener<Derived extends BaseStore> = (
6+
init: BaseStoreListenerInit<Derived>,
7+
) => void;
38
export declare class BaseStore {
49
constructor();
510

6-
public addChangeListener(listener: BaseStoreListener): void;
7-
public removeChangeListener(listener: BaseStoreListener): void;
11+
public addChangeListener(listener: BaseStoreListener<this>): void;
12+
public removeChangeListener(listener: BaseStoreListener<this>): void;
813
public emitChange(event: string): void;
914
public get listenersCount(): number;
1015

11-
private _onChangeListeners: BaseStoreListener[];
16+
private _onChangeListeners: BaseStoreListener<this>[];
1217
}

0 commit comments

Comments
 (0)