У меня есть тип значения, подобный этому:
export type Value = {
__typename?: 'Value',
key?: Maybe<Scalars['String']>,
label?: Maybe<Scalars['String']>,
value?: Maybe<Scalars['String']>,
};
И тип результата запроса (сгенерированные аполлон-хуки), например:
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 )
Ошибка TypeScript:
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 )