我遇到了编译器生成的某些类型的问题,特别是查询和最终导致相同类型的突变结果之间的问题。 一个有点像:
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
的查询片段时,我收到错误:
对象类型。协变属性
platform
与不变量不兼容 用于
答案 0 :(得分:1)
尝试强制转换变量:
const a = { ... } : MyForceCast
有时,当您混合时,Flow无法选择正确的类型。