буквенный массив дерева состояний - PullRequest
0 голосов
/ 10 июня 2018

возможно ли создать буквенный тип массива в 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

1 Ответ

0 голосов
/ 11 июня 2018

Можете ли вы уточнить немного, вы ищете тип массива или тип кортежа?Другими словами, является ли ["1мин"] или ["1мин", "5мин", "1мин"] также приемлемым?

Если это приемлемо, types.array (types.union (types.literal)("1мин"), types.literal ("5мин")) должны сделать свое дело (вы были близки!). Или проще: types.array (types.enum (["1мин", "5мин"])))

Если вы ищете тип кортежа, который еще не реализован: см. https://github.com/mobxjs/mobx-state-tree/issues/805

...