Как описать модель дерева состояний mobx с интерфейсом машинописи? - PullRequest
0 голосов
/ 16 октября 2018

У меня уже есть несколько интерфейсов, и я хочу описать модели с этими интерфейсами, как в коде ниже.В противном случае я должен написать снова, используя types из mobx-state-tree.Но это не правильный путь, каково правильное решение?

    import { types } from 'mobx-state-tree';

    export interface IPeople {
      name: string;
      age: number;
    }

    const Peoples = types
      .model({
        name: 'peoples',
        nancy: IPeople, // error at this line
      })

    export default Peoples;

1 Ответ

0 голосов
/ 16 октября 2018

Нет способа перейти от объявления типа TypeScript к определению модели mobx-state-tree (за исключением, возможно, с помощью отражения метаданных, хотя я сомневаюсь, что кто-либо реализовал это).Однако, если вы напишите определение модели mobx-state-tree, вы сможете сгенерировать тип TypeScript из него;см. Использование типа MST во время разработки в файле readme.Таким образом, вам придется конвертировать существующие интерфейсы, но, по крайней мере, вам не придется поддерживать две копии одной и той же информации.

import { types, Instance } from 'mobx-state-tree';

const Person = types.model({
  name: types.string,
  age: types.number
});
export type IPeople = Instance<typeof Person>;

const Peoples = types
  .model({
    name: 'peoples',
    nancy: Person
  })

export default Peoples;
...