我试图创建一个Alert类,如下所示:
@ObjectType()
export class Alert {
@Field()
status: 'error' | 'success' | 'warning' | 'info' | undefined
@Field(() => [String])
messages: string[];
}但是,它提供了以下错误消息:
错误:无法从GraphQL反射系统推断TypeScript类型。您需要为“警报”类的“状态”提供显式类型。
发布于 2020-08-25 05:34:24
为'error' | 'success' | 'warning' | 'info' | undefined创建一个类型,并将其添加到字段定义中:@Field(() => StatusType)
它基本上是在抱怨它无法推断该字段的类型,因为它不是一个原语,只要一个字段是一个对象或其他用户定义的类型,您就需要像我所描述的那样提供类型信息。
发布于 2022-05-19 09:34:53
我为这个问题所做的工作是一种枚举和元组类型。
//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[];
}在代码中的某个地方,使用这些选项创建一个表或对象。
`const myArr:succesArray = [EnumStatus.ERROR, EnumStatus.SUCCESS,EnumStatus.WARNING,EnumStatus.INFO,EnumStatus.UNDEFINED]`;https://stackoverflow.com/questions/63532777
复制相似问题