2.x~3.x改动说明
2.x使用了typescript泛型来约束类型以及做代码提示,定义则通过this.extend(options)来传入
type State = number;
enum TYPE{
INCREMENT,
INCREMENT_IF_ODD,
DECREMENT,
INCREMENT_ASYNC
};
interface Creators{
increment(step?: number): { type: string; step: number };
}
interface Selectors{
count: number;
}
interface Options{
step?: number;
getStep?: () => number;
}
export default class MyDuck extends Duck<
State,
typeof TYPE,
Creators,
Selectors,
Options
> {
init() {
super.init();
this.extend(
{
types: TYPE,
...
}
);
}
}3.x改为了使用getter定义各属性,类型由getter自动生成,对比2.x options定义字段,与3.x getter有以下变动
types/typeList(types属性只读,定义由quickTypes及rawTypes替代)
initialState(由reducers来处理默认值)
reducer(不再支持单reducer,只支持对象形式的reducers)
selectors(属性只读,定义由rawSelectors替代)
constList(不再支持,请自行定义成员属性)
sagas(由saga成员替代)
ducks(属性只读,定义由quickDucks及rawDucks替代)
Last updated
Was this helpful?