我正在努力将带有库(Relay)的Flow类型生成器移植到一个发出TypeScript类型的生成器,但是对于一些在我的代码片段中并不明显的Flow语法有一些疑问:
import type { FragmentReference } from 'relay-runtime';
export opaque type TypenameInside$ref: FragmentReference = FragmentReference;
export type TypenameInside = ({|
+__typename: 'User',
+firstName: ?string,
+$refType: TypenameInside$ref,
|} | {|
+__typename: 'Page',
+username: ?string,
+$refType: TypenameInside$ref,
|} | {|
// This will never be '%other', but we need some
// value in case none of the concrete values match.
+__typename: '%other',
+$refType: TypenameInside$ref,
|});
Run Code Online (Sandbox Code Playgroud)
也就是说,什么是$ref,$refType和%other?或者它们不是Flow特定的,而是Relay特定的?
我尝试搜索flowtype docs和repo,但很难找到答案.还将非常感谢与实施文档和/或相关部分的链接.
$ref,$refType等等都是正常的类型名称.
$类型的前缀是表示实用程序类型的约定,例如$Keys,虽然看起来不像这里遵循约定.
%other只是一个普通的字符串.Relay可能会在内部将字符串用于某些特殊用途.
| 归档时间: |
|
| 查看次数: |
266 次 |
| 最近记录: |