【发布时间】:2019-10-24 17:25:20
【问题描述】:
假设属性名称是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 方法。同样,不可变方法也应该可用。
只是想知道,为什么它不自动执行此操作?
如果不是,我想到的是使用不可变接口扩展我的自定义接口FieldProps。但是,我确信 immutable 不附带它自己的任何类型。
我怎样才能达到同样的效果?
【问题讨论】:
-
很难理解你在问什么。你能试着改写一下,或者提供一些不能按照你想要的方式工作的代码吗?
-
确实更新相同。
-
“只是想知道,为什么它不自动执行此操作?”为什么它会自动执行?你没有说你的接口与 Immutable 有任何关系,它只是一个 POJO。
-
@AvinKavish。差点跳过了。试图通过 Immutable.something 在 vscode 中查找自动导入的内容。无论如何,做
interface FieldProps extends Map<any, any> {}没有帮助。 `
标签: reactjs typescript immutable.js