从TypeScript接口创建Immutable.js记录

时间:2018-02-23 10:37:53

标签: typescript immutable.js

假设您正在使用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对象?

0 个答案:

没有答案