比方说,属性名称是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
。但是,我确定不可变本身不会附带任何类型。
我怎么能达到同样的目的?
答案 0 :(得分:0)
由于您希望field
是具有一些添加键的地图,因此可以按照以下方式创建类型交集。
interface FieldProps {
field: {
type: string;
code: string;
required: number;
} & Map<any, any>
}