Расширение типа объединения из расширенного интерфейса - PullRequest
0 голосов
/ 07 апреля 2020

Если у меня есть это определение интерфейса:

interface ModalProps {
    onClose: (event: {}, reason: 'backdropClick' | 'escapeKeyDown'): void;
}

Теперь я хочу добавить дополнительную причину:

interface CustomModalProps {
    onClose: (event: {}, reason: 'backdropClick' | 'escapeKeyDown' | 'cancelClick'): void;
}

Можно ли как-то ссылаться на причину ModalProps onClose изнутри CustomModalProps, чтобы мне не нужно было копировать значения?

interface CustomModalProps extends ModalProps {
  onClose: (event: {}, reason: ??? &| 'cancelClick'): void
}

1 Ответ

2 голосов
/ 07 апреля 2020

Нас типы.

type ModalReason = 'backdropClick' | 'escapeKeyDown';

type CustomModaReason = ModalReason | 'cancelClick';

interface ModalProps {
    onClose: (event: {}, reason: ModalReason): void;
}

interface CustomModalProps {
    onClose: (event: {}, reason: CustomModaReason): void;
}
...