我有一个像这样的值类型:
export type Value = {
__typename?: 'Value',
key?: Maybe<Scalars['String']>,
label?: Maybe<Scalars['String']>,
value?: Maybe<Scalars['String']>,
};
查询结果类型(生成的 apollo 钩子)如下:
Maybe<Maybe<{
__typename?: "Value" | undefined;
} & Pick<Value, "key" | "label" | "value">>[]>
我正在尝试将此查询结果传递给函数:
const getValues = (contacts: Value[]) => {
const values = contacts.map(e => e["value"]);
return values;
};
出于某种原因,TypeScript 说这些类型是不兼容的。我的函数调用:
getValues( dataFilters!.caseListFilters!.contacts )
打字稿错误:
Argument of type 'Maybe<Maybe<{ __typename?: "Value" | undefined; } & Pick<Value, "key" | "label" | "value">>[]>' is not assignable to parameter of type 'Value[]'.
Type 'null' is not assignable to type 'Value[]'.ts(2345)
有人可以帮我理解这些类型有什么问题吗?我知道这as Value[]
可以解决问题,但我不知道为什么。
getValues( dataFilters!.caseListFilters!.contacts as Value[] //no error )