中继突变生成的协变流类型与查询中的非协变
Covariant Flow types generated by Relay mutation vs non-covariant in Queries
我在编译器生成的某些类型方面遇到了一些问题,特别是在最终导致相同类型的查询和变异结果之间。
一个有点像:
fragment Foo on MyType {
createdAt
hidden
locked
}
query {
foo(...) {
id
...Foo
}
}
并生成协变属性:
export type Foo = {|
+createdAt: any,
+hidden: boolean,
+locked: boolean
|};
在另一个地方我有:
mutation doSomething(...) {
clientMutationId
foo {
createdAt
hidden
locked
}
}
这将生成类型:
export type DoSomething_foo = {
createdAt: any
hidden: boolean
locked: boolean
}
因此,当我尝试匹配突变的结果 foo
和调用 commit
的查询片段时,我收到错误:
object type. Covariant property platform
incompatible with invariant
use in
尝试强制转换您的变量:
const a = { ... } : MyForceCast
有时,Flow 在混合使用它们时无法选择正确的类型。
我在编译器生成的某些类型方面遇到了一些问题,特别是在最终导致相同类型的查询和变异结果之间。 一个有点像:
fragment Foo on MyType {
createdAt
hidden
locked
}
query {
foo(...) {
id
...Foo
}
}
并生成协变属性:
export type Foo = {|
+createdAt: any,
+hidden: boolean,
+locked: boolean
|};
在另一个地方我有:
mutation doSomething(...) {
clientMutationId
foo {
createdAt
hidden
locked
}
}
这将生成类型:
export type DoSomething_foo = {
createdAt: any
hidden: boolean
locked: boolean
}
因此,当我尝试匹配突变的结果 foo
和调用 commit
的查询片段时,我收到错误:
object type. Covariant property
platform
incompatible with invariant use in
尝试强制转换您的变量:
const a = { ... } : MyForceCast
有时,Flow 在混合使用它们时无法选择正确的类型。