【问题标题】:mobx-state-tree literal arraymobx-state-tree 字面量数组
【发布时间】:2018-06-09 21:02:35
【问题描述】:

是否可以在 MST 中创建文字数组类型?它应该等同于

type Interval = ['1min', '5min'];

这是一个抛出错误的代码示例

type Interval = '1min' | '5min';

export interface AppStore {
  config: {
    intervals: ['1min', '5min']
  },
  search: {
    symbol: string;
    interval: string;
    dataTypes: string[];
  }
}

const appStore = types
  .model<AppStore>('appStore', {
    config: types.model({
      intervals: types.array(
        types.literal<Interval>('1min'),
        types.literal<Interval>('5min')
      ),
    }),
    search: types.model({
      dataTypes: types.array( types.string ),
      interval: types.union(
        types.literal<Interval>('1min'),
        types.literal<Interval>('5min')
      ),
      symbol: types.string,
    }),
  })

types.array() 期望有一个参数,所以它甚至可能吗?没有 MST 文档https://github.com/mobxjs/mobx-state-tree#types-overview

【问题讨论】:

    标签: typescript state mobx-state-tree


    【解决方案1】:

    您能否详细说明一下,您是在寻找数组类型还是元组类型?换句话说,["1min"] 或者 ["1min", "5min", "1min"] 也可以接受吗?

    如果这是可以接受的, types.array(types.union(types.literal("1min"), types.literal("5min")) 应该可以解决问题(你很接近!)。或者更简单:类型。数组(types.enum(["1min", "5min"])))

    如果您正在寻找尚未实现的元组类型:请参阅https://github.com/mobxjs/mobx-state-tree/issues/805

    【讨论】:

    • 对不起,我正在寻找的是元组数组。届时将跟踪问题。谢谢。
    猜你喜欢
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2019-11-26
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多