optimize the definition of VMPanel

This commit is contained in:
pengfei.zhou
2020-04-17 10:28:02 +08:00
committed by osborn
parent ac152df6f0
commit 9a1a8be5ae
3 changed files with 9 additions and 12 deletions

View File

@@ -54,20 +54,19 @@ export abstract class ViewModel<M extends Object, V extends ViewHolder> {
abstract onBind(state: M, vh: V): void
}
export type ViewModelClass<M, V extends ViewHolder> = new (m: M, v: V) => ViewModel<M, V>
export type ViewHolderClass<V> = new () => V
export type ClassType<T> = new (...args: any) => T
export abstract class VMPanel<M extends Object, V extends ViewHolder> extends Panel {
private vm?: ViewModel<M, V>
private vh?: V
abstract getViewModelClass(): ViewModelClass<M, V>
abstract getViewModelClass(): ClassType<ViewModel<M, V>>
abstract getState(): M
abstract getViewHolderClass(): ViewHolderClass<V>
abstract getViewHolderClass(): ClassType<V>
getViewModel() {
return this.vm