假设您正在使用Redux和Immutable.js编写React应用程序,并具有以下对整个州的表示,即产品列表。
import { Record, List } from 'immutable';
export interface ProductProps {
something: string;
}
interface IRootState {
products: List<ProductProps>;
}
export class RootState extends Record({
products: List<ProductProps>()
}) {
constructor(props?: IRootState) {
props ? super(props) : super();
}
}
export const initialState = new RootState();
类RootState用于实现IRootState
作为不可变记录,其构造函数填充新创建的对象(如果给定数据用其填充)。
现在这个实现的问题是重复,{ products: List<ProductProps> }
的重复。 IRootState
的每个修改都必须伴随extends Record()
子句的等效修改,继承此代码库的开发人员可能不知道。
我的问题很简单:是否可以在Record
上参数化IRootState
而不是上面示例中给出的JavaScript对象?