代码之家  ›  专栏  ›  技术社区  ›  Guy

具有id的嵌套对象的Facebook流类型

  •  0
  • Guy  · 技术社区  · 6 年前

    我在里面找不到 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 回复  |  直到 6 年前
        1
  •  1
  •   OliverRadini    6 年前

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

    /* @flow */
    
    type Field = {
      id: string,
      name: string
    }
    
    type Fields = {
      [key: string]: Field
    }
    
    type Form = {
        title: string,
        fields: Fields,
    }
    
        2
  •  2
  •   bamse    6 年前

    你试过用 Objects as maps ?

    那就是

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

    希望有帮助!