网站搜索

如何在 Mobx State Tree 模型中将 TypeScript 类型用作属性类型


我正在使用一个 GraphQL 代码生成器,它会在 TypeScript 中生成模式类型,并希望在模型中使用这些类型。

我的问题是,我如何像这样在 Mobx 状态树模型中使用 TypeScript 类型

type AssignedFilter = {
  id: number
  name: string
  email: string
}

const SearchStore = types
  .model('Search', {
    text: '',
    assigned: // how to use the AssignedFilter type here??
  })

答案#1

type 是 TypeScript 的纯概念,因此不可能使用 type 来定义属性应该是什么 MST 类型。

不过,你也可以反过来做,根据你的 MST 模型创建一个 type,如果这适合你的用例的话。

示例

const AssignedModel = types.model('Assigned', {
  id: types.identifierNumber,
  name: types.string,
  email: types.string
});

const SearchStore = types.model("Search", {
  text: "",
  assigned: AssignedModel
});

type AssignedFilter = SnapshotIn<typeof AssignedModel>;