Я получаю загадочное сообщение об ошибке при использовании двух пользовательских типов Typecsipt 'OptionsPostData3 | OptionsPostData4'
(временное имя извините) и троичный оператор при использовании только OptionsPostData3
или только OptionsPostData4
одна половина или другая половина моего кода не получаетсообщение об ошибке ...
Мой код выглядит следующим образом
const postData: OptionsPostData3 | OptionsPostData4 =
!!optionIds && optionIds.length > 0
? {
optionIds,
}
: {
filters: [
{
underlyingId,
expiryDate,
optionType: optionType || void 0,
minstrikePrice: minstrikePrice || 0,
maxstrikePrice: maxstrikePrice || 0,
},
],
};
Мне не повезло, когда я пытался найти решение в Интернете, и, вероятно, это очевидно (или, возможно, нет), чтобы найтиРешение в загадочном сообщении об ошибке, но я не знаю, что мне делать ...
Типы определены следующим образом
export type OptionsPostData3 = {
filters: Filters[];
};
export type OptionsPostData4 = { optionIds: number[] };
export interface OptionsIdArray {
optionIds: number[];
}
export interface FiltersArray {
filters: Filters[];
}
export interface Filters {
underlyingId: number;
expiryDate: string;
optionType: string;
minstrikePrice: number;
maxstrikePrice: number;
}
Я думаю, что сообщение об ошибке может предоставить достаточно информациичтобы решить мою проблему, но я не нашел, как ... И я хочу, чтобы избежать использования ключевого слова типа any
:
Сообщение об ошибке выглядит следующим образом
Type '{ optionIds: number[]; } | { filters: { underlyingId: number | undefined; expiryDate: string | undefined; optionType: string | undefined; minstrikePrice: number; maxstrikePrice: number; }[]; }' is not assignable to type 'OptionsPostData4 | OptionsPostData3'.
Type '{ filters: { underlyingId: number | undefined; expiryDate: string | undefined; optionType: string | undefined; minstrikePrice: number; maxstrikePrice: number; }[]; }' is not assignable to type 'OptionsPostData4 | OptionsPostData3'.
Type '{ filters: { underlyingId: number | undefined; expiryDate: string | undefined; optionType: string | undefined; minstrikePrice: number; maxstrikePrice: number; }[]; }' is not assignable to type 'OptionsPostData3'.
Types of property 'filters' are incompatible.
Type '{ underlyingId: number | undefined; expiryDate: string | undefined; optionType: string | undefined; minstrikePrice: number; maxstrikePrice: number; }[]' is not assignable to type 'Filters[]'.
Type '{ underlyingId: number | undefined; expiryDate: string | undefined; optionType: string | undefined; minstrikePrice: number; maxstrikePrice: number; }' is not assignable to type 'Filters'.
Types of property 'underlyingId' are incompatible.
Type 'number | undefined' is not assignable to type 'number'.
Type 'undefined' is not assignable to type 'number'.ts(2322)
, если вам нужнополный проект в качестве ссылки это ссылка на GitHub, он начинается в строке 20