首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从GraphQL反射系统推断TypeScript类型

无法从GraphQL反射系统推断TypeScript类型
EN

Stack Overflow用户
提问于 2020-08-22 05:10:56
回答 2查看 13.6K关注 0票数 8

我试图创建一个Alert类,如下所示:

代码语言:javascript
复制
@ObjectType()
export class Alert {
  @Field()
  status: 'error' | 'success' | 'warning' | 'info' | undefined

  @Field(() => [String])
  messages: string[];
}

但是,它提供了以下错误消息:

错误:无法从GraphQL反射系统推断TypeScript类型。您需要为“警报”类的“状态”提供显式类型。

EN

回答 2

Stack Overflow用户

发布于 2020-08-25 05:34:24

'error' | 'success' | 'warning' | 'info' | undefined创建一个类型,并将其添加到字段定义中:@Field(() => StatusType)

它基本上是在抱怨它无法推断该字段的类型,因为它不是一个原语,只要一个字段是一个对象或其他用户定义的类型,您就需要像我所描述的那样提供类型信息。

票数 9
EN

Stack Overflow用户

发布于 2022-05-19 09:34:53

我为这个问题所做的工作是一种枚举和元组类型。

代码语言:javascript
复制
//anything after EnumStatus is optional. depends on how much control you want.
type TSuccessArray = [EnumStatus.ERROR, EnumStatus.SUCCESS,EnumStatus.WARNING,EnumStatus.INFO,EnumStatus.UNDEFINED]

export enum EnumStatus {
        ERROR = "error",
        SUCCESS = 'success',
        WARNING = 'warning',
        INFO = "info",
        UNDEFINED = "undefined"
      }

    @ObjectType()
export class Alert {
  @Field(() => [String])
  status: TSuccessArray[];

  @Field(() => [String])
  messages: string[];
}

在代码中的某个地方,使用这些选项创建一个表或对象。

代码语言:javascript
复制
`const myArr:succesArray = [EnumStatus.ERROR, EnumStatus.SUCCESS,EnumStatus.WARNING,EnumStatus.INFO,EnumStatus.UNDEFINED]`;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63532777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档