使用Typescript

时间:2019-06-10 10:03:02

标签: reactjs typescript immutable.js

比方说,属性名称是field,它基本上是一个不变的对象。因此field.get('')或任何不可变的方法都存在于其上。 但是,我为此字段定义了自己的接口,该接口将覆盖或不自然地扩展不可变字段。

interface FieldProps  {
    field: {
        type: string;
        code: string;
        required: number;
    }
}

export default function FieldsComponent({ field = fromJS({}) }: FieldProps) {
    return (
        <>
            {field.get('type')}
        </>
    );
}

我的意思是,如果我field.get('')Property 'get' does not exist on type '{ type: string; code: string; required: number; }

field基本上是一个对象,因此可以使用Javascript Object.prototype方法。同样,不可变方法也应该可用。

想知道,为什么它不自动这样做?

如果没有,我想到的是使用Immutable接口扩展自定义接口FieldProps。但是,我确定不可变本身不会附带任何类型。

我怎么能达到同样的目的?

1 个答案:

答案 0 :(得分:0)

由于您希望field是具有一些添加键的地图,因此可以按照以下方式创建类型交集。

interface FieldProps  {
    field: {
        type: string;
        code: string;
        required: number;
    } & Map<any, any>
}