首页 > 解决方案 > 利用接口或类型来描述对象的键

问题描述

考虑我已经定义了类型:

export type RegisterInput = {
  email: Scalars['String'];
  age: Scalars['Int'];
  password: Scalars['String'];
};

它是由代码生成器自动生成的 graphql 输入类型。

我想用这种类型来描述前端表单的初始值。使用 Formik 是这样的:

<Formik
  initialValues={
    { email: '', age: null, password: '' } as RegisterInput
  }
>
  {...}
</Formik>

这个想法是当graphql改变时,类型被重新生成并且打字稿会抱怨。问题是显然不可能将类型用于初始值,因为初始值可以为空,而类型RegisterInput不允许为空值。

问题是:有没有办法根据打字稿中的给定类型仅描述对象的键?

标签: typescript

解决方案


Partial<RegisterInput>将使 type 选项的所有属性(可能undefined)。


推荐阅读