Как определить интерфейс generi c с необязательным аргументом - PullRequest
1 голос
/ 30 апреля 2020

У меня универсальный c интерфейс

interface Action<Type, Payload> {
  type: Type;
  payload?: Payload;
}

Некоторые из моих действий содержат полезную нагрузку, а некоторые - нет, поэтому «полезная нагрузка» является необязательной. Но когда я пытаюсь определить интерфейсы для конкретных действий, он просит передать второй аргумент, даже если он мне не нужен. Я могу решить это, передав undefined в качестве второго аргумента, но я думаю, что это не очень хорошее решение.

export type GetSomethingAction = Action<
  typeof ActionTypes.GET_SOMETHING,
  undefined
>;

Как я могу сделать это без 'undefined'?

1 Ответ

0 голосов
/ 30 апреля 2020

Вы можете установить Payload в undefined по умолчанию (см. Generi c значения по умолчанию ):

interface Action<Type, Payload = undefined> {
  type: Type;
  payload?: Payload;
}

Тогда export type GetSomethingAction = Action<typeof ActionTypes.GET_SOMETHING>; работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...