【问题标题】:Is it possible to use Graphql generated schema as Flow definitions?是否可以使用 Graphql 生成的模式作为流定义?
【发布时间】:2016-07-29 09:44:36
【问题描述】:

我有一个项目使用 convo GraphQLRelayFlow。有没有办法使用 GraphQL 模式来提供 Flow,以便在不重新声明类型的情况下键入 React 道具?

对于 Relay,我已经在使用生成两个文件的脚本:schema.jsonschema.graphql。 Babel 插件使用schema.json 将查询转换为javascript。

另一个文件schema.graphql 看起来与类型的流语法定义相似,但有区别。我已经尝试过一次import type {Definition} from "./schema.graphql",但默默地失败了。

【问题讨论】:

  • 我知道没有现成的方式,但我认为你可以自己为它编写 babel-plugin

标签: javascript reactjs graphql flowtype relayjs


【解决方案1】:

所以过了一段时间我决定解决这个问题,因为我们的项目开始增长并且我们开始放松我们的类型。最后,最简单的解决方案是获取 printerSchema 并对其进行修改,使其输出流友好的文本,将其保存到 .js 文件并将库指向那里。

我稍后会尝试在github上发布它

【讨论】:

  • 听起来很有趣,你有进步吗?可以分享一下代码吗?
  • @Kloar 只是让你知道,我们已经在生产中使用它一段时间了,就像一个魅力!
【解决方案2】:

问题在于 GraphQL 标量类型可用于表示各种格式的值,并且它们不会从您可以回退到流的基本类型继承。

Scalar 不仅可以验证“字符串”,还可以验证“32 位十六进制数字的字符串”。不能在流中声明这种类型。

这里有一些替代方案:babel-plugin-typecheckjson-to-flow

【讨论】:

    猜你喜欢
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 2020-12-05
    • 2023-03-25
    • 2017-01-22
    • 2018-06-15
    相关资源
    最近更新 更多