【问题标题】:Graphql query argument array of stringGraphql查询字符串的参数数组
【发布时间】:2021-03-18 18:43:22
【问题描述】:

我需要将一个字符串数组传递给我的查询,以便可以对其进行迭代,但我不知道该怎么做。

类似这样的:

@Query(() => Boolean)
async fetchUrl(
    @Arg('urls') urls: string[]
): Promise<Boolean> {
 // do something

 return true
}
Error: You need to provide explicit type for FetchResolver#fetchUrl parameter #0 !

我真的不知道如何为字符串数组提供合适的类型

【问题讨论】:

  • 可能是缺少输出类型?输入类型似乎是键入的。
  • @Herku 添加了输出类型。不要认为这是问题所在。

标签: graphql typegraphql


【解决方案1】:

@vjeko 要为字符串数组提供正确的类型,您应该使用 @Arg 装饰器的第二个参数并使用括号 [] 表示法:

@Arg('urls', type => [String]) urls: string[]

【讨论】:

    【解决方案2】:

    通过传递一个字符串化对象而不是字符串数组来解决这个问题,但知道如何以 graphql 类型键入字符串数组仍然会很好。

    【讨论】:

      【解决方案3】:

      @Michał Lytek 的回答几乎对我有用,但对于其他为此苦苦挣扎的人,我必须将其更改为这样才能使其正常工作:

      @Arg('urls', type => [String]) urls: [String]
      

      【讨论】:

      • 语法错误。这样你就可以声明一个 TS 元组类型——只有一个元素的字符串数组。
      猜你喜欢
      • 2020-10-10
      • 1970-01-01
      • 1970-01-01
      • 2020-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 2011-04-03
      相关资源
      最近更新 更多