ES6 粗箭头和括号 `(...) => ({...})` [重复]

2023-11-25

我一直在研究一些 Graph QL/React/Relay 示例,但遇到了一些奇怪的语法。

在 Graphql 对象中定义字段时,使用以下语法:

const xType = new GraphQLObjectType({
  name: 'X',
  description: 'A made up type for example.',
  fields: () => ({
    field: {/*etc.*/}
  })
});

据我所知,这只是定义一个匿名函数并将其分配给 xType.fields。该匿名函数返回包含字段定义的对象。

我假设 Graph QL 架构机制如何工作,必须将其定义为返回对象的函数,而不仅仅是返回对象。但让我困惑的部分是大括号周围的括号。

这是为了区分对象定义和函数定义吗?是为了让读者清楚起见吗?

谷歌搜索发现的唯一类似的语法是在爱彼迎风格指南中,它似乎是一个可读性/清晰度的东西。

当我开始更多地使用 Graph QL 时,只是在寻找超出我假设的确认或解释。


fields: () => ({
  field: {/*etc.*/}
})

是一个隐式返回对象(文字)的函数。不使用()JavaScript 解释器解释{}作为函数体的包装器而不是作为对象。

不使用括号:(), the field: ...语句被视为label语句和函数返回undefined。等效语法是:

fields: () => { // start of the function body
   // now we have to define an object 
   // and explicitly use the return keyword
   return { field: {/*etc.*/} }
}

所以父母不在那里澄清。它用于使用箭头函数的隐式返回功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ES6 粗箭头和括号 `(...) => ({...})` [重复] 的相关文章

随机推荐

  • Websphere 不信任证书

    我有一个 Web 应用程序 它调用通过 SSL 保护的 SOAP Web 服务 https zzzzzzzzzzzz xxxxx 服务器发送两个证书 根和叶 因此我使用以下属性导入两个证书 com ibm websphere ssl ret
  • 不带 new 的动态数组 (C++)

    我是 C 新手 这是一个非常基本的问题 在C 中只有两种创建动态数组的方法 在书上看到的 如有错误请指正 使用内存分配new运算符或malloc 函数取自C 声明数组时int array size 方括号 must have a const
  • java applet 策略文件放置在哪里?

    我正在开发一个人工智能项目 这是一个逻辑游戏 目标是两个用户连接到网络上的服务器 充当管理员 然后开始一一玩 为了创建连接 我有一个服务器代码 它只是在 localhost 8000 上侦听 并在客户端到达时为其分配团队值 连接后 客户端在
  • CSS - 如何从div溢出到屏幕全宽

    我有一个包含 DIV 我将其用作响应式网格的一部分 它扩展到我允许的最大宽度 即 1280px 然后在大型设备上出现边距 这是我的 CSS 一些 Less container margin left auto margin right au
  • XML 中的“xmlns”是什么意思?

    我在 XML 文件中看到以下行 xmlns android http schemas android com apk res android 我也见过xmlns在我遇到的许多其他 XML 文件中 它是什么 它的意思是XML命名空间 基本上
  • 使用 JavaScript 对 CSS3 变换的值进行动画处理是否可以排除硬件加速?

    您可以通过设置动画持续时间并设置 CSS3 变换的初始值和最终值来利用硬件加速动画 如果您不设置动画持续时间并使用关键帧 而是直接使用 JavaScript 对所需 CSS3 转换的值进行动画处理 会怎样 您是否仍会利用硬件加速 或者是否会
  • 如何最好地将 CString 转换为 BSTR 以将其作为“in”参数传递到 COM 方法中?

    我需要转换一个CString实例到正确分配的BSTR并通过它BSTR转换为 COM 方法 为了让代码能够针对 ANSI 和 Unicode 进行相同的编译和工作 我使用CString AllocSysString 转换任何格式CString
  • MPI 和全局变量

    我必须实施 MPI 程序 有一些全局变量 4 个浮点数组和其他 6 个单浮点变量 首先由主进程从文件读取数据进行初始化 然后我调用 MPI Init 当排名 0 的进程等待结果时 其他进程 排名 1 2 3 4 处理数组等 问题是这些数组似
  • 在 ggplot() 中将误差线放置在列中心时出现问题

    我的条形图有问题 误差线仅出现在分组变量列的角上 而不是以集中方式出现在它们上 我正在使用的代码是这样的 a lt data frame Cond c In In Out Out Temp c Hot Cool Hot Cool Score
  • .NET 缓存(不在网站中)

    我需要一个能够响应内存压力的缓存 就像 ASP NET 中内置的缓存一样 我没有使用网站 但我正在构建 Windows 服务 有什么建议么 代码 技术 产品 只要它在内存中 我不在乎 如果您熟悉 ASP NET 缓存 System Web
  • 如何使用pvc创建postgres的helm图表

    我想使用 PVC 持久卷声明 为 PostgreSQL 创建一个 helm 图表 我考虑过尝试 katacodahttps www katacoda com courses kubernetes helm package manager使用
  • 无法建立与节点 -1 (/127.0.0.1:9092) 的连接。经纪人可能不可用

    我正在研究Spring Boot Kafka来自 Confluence 的示例并运行简单的生产者示例并出现以下错误 我使用的是 Windows 机器 并在 Windows 上安装了 ubunt 14 04 LTS 注意 即使我使用 loca
  • 如何使用 IOStream 存储格式设置?

    当为用户定义的类型创建格式化输出时 通常需要定义自定义格式化标志 例如 如果自定义字符串类可以选择在字符串周围添加引号 那就太好了 String str example std cout lt lt str lt lt lt lt squo
  • ASP.Net Core Cookie 身份验证不是持久的

    我开始使用开发网站ASP NET 核心 2 2 我正在通过自定义 cookie 身份验证 而不是身份 实现登录 注销 请查看或克隆the repo git clone https github com mrmowji aspcore cus
  • 多平台可移植Python

    我想在虚拟环境中将python安装在闪存驱动器上 这样无论我在哪里都可以开发代码 我可以在 Windows Mac Linux 计算机上使用我的闪存驱动器吗 对于 Windows 请前往 Portable Python http Porta
  • 如何使用 PHP 提取多部分 zip 文件?

    我使用了这段代码 来自 使用 php 解压文件 zip new ZipArchive res zip gt open file zip if res TRUE zip gt extractTo myzips extract path zip
  • 降低 ORMlite 的内部日志详细程度或禁用它

    我们正在我们的应用程序中进行一些重大的性能调整 因此我们开始使用方法跟踪来查找瓶颈 乍一看 Ormlite 还不错 但我们发现 例如在一个需要 8 毫秒的查询中 Ormlite 的内部日志需要 6 毫秒 75 此外 这些日志调用处于调试级别
  • 如何在 WPF RichTextBox 中将插入符号移动一定数量的位置?

    我想将插入符号移动到当前插入符号位置的右侧 4 个位置 我已注册PreviewKeyDown 并调用InsertTextInRun 当 Tab 键被捕获时 如下所示 private void rtb PreviewKeyDown objec
  • 仅限制一个方向的拖动

    Using jQuery 可拖动 如何限制可拖动对象被拖动只朝一个方向 即只有顶部或只有底部axis y 并且仅向左或仅向右时axis x 这意味着如果我想要一个可拖动的 with axis set to y 只能被拖到bottom 那么它
  • ES6 粗箭头和括号 `(...) => ({...})` [重复]

    这个问题在这里已经有答案了 我一直在研究一些 Graph QL React Relay 示例 但遇到了一些奇怪的语法 在 Graphql 对象中定义字段时 使用以下语法 const xType new GraphQLObjectType n