在流类型中定义嵌套对象

时间:2017-06-13 01:18:06

标签: javascript flowtype

export type TOption = {
  input_type: string,
  label: string,
  option_id: string,
  value: any
};

export type TOptions = {
  [key: string]: TOption
};

我正在尝试定义一个Type,它是一个具有动态数量的键值对的对象,其中每个值都是一个具有input_type,label,option_id,value的对象。

但是,流程正在抛出不兼容的类型错误

  Property `option_id` is incompatible:
     19:   [key: string]: TOption
                          ^^^^^^^ object type. This type is incompatible with
     14:   option_id: string,
                      ^^^^^^ string

我认为我错误地定义了它,但我不确定如何定义它。有谁可以指出这个问题?

1 个答案:

答案 0 :(得分:1)

以下代码适用于动态嵌套类型。如果你想要实现同样的目标。

/* @flow */

type TOption = {
    input_type: string,
    label: string,
    option_id: string,
    value: any
}

type TOptions = {
    [key: string]: TOption
}

var myObj: TOptions = {
    data: {
        input_type: 'my_input_type',
        label: 'my_label',
        option_id: 'my_option_id',
        value: 12
    }
}