带有ID的嵌套对象的Facebook流类型

时间:2018-08-07 05:45:36

标签: javascript flowtype

我在docs中找不到如何为嵌套对象创建类型 ID,例如:

const form = {
    title: string,
    fields: {
        f1: {
            id: string,
            title: string
            ...
        },
        f2: {
            id: string,
            title: string
            ...
        }
    }
};

如果属性“ fields”是一个数组,我会做类似的事情:

type form = {
    title: string,
    fields: Array<Field>
}

所以我正在寻找类似的东西:

type form = {
    title: string,
    fields: ObjectOf<string: Field>
}

最后一个代码块的语法当然是错误的,用于说明我的目标。如何用ID描述嵌套对象?

2 个答案:

答案 0 :(得分:2)

您是否尝试过使用Objects as maps

那将是

type Form = {
  title: string,
  fields: {[string]: Field}
}

希望有帮助!

答案 1 :(得分:1)

这似乎可以满足您的需求:

/* @flow */

type Field = {
  id: string,
  name: string
}

type Fields = {
  [key: string]: Field
}

type Form = {
    title: string,
    fields: Fields,
}