BaseTransitionProps<RefElement> {
timeout: number | { appear?: number; enter?: number; exit?: number };
addEndListener?: EndHandler<RefElement>;
}
interface EndListenerProps<Ref extends undefined | HTMLElement> extends BaseTransitionProps<Ref> {
timeout?: number | { appear?: number; enter?: number; exit?: number };
addEndListener: EndHandler<Ref>;
}
export type TransitionProps<RefElement extends undefined | HTMLElement = undefined> =
| TimeoutProps<RefElement>
| EndListenerProps<RefElement>;
Когда делаю TransitionProps['timeout'], то получаю двойное описание типов, т.к. timeout описан дважды
Есть возможность убрать лишние типы?
Они не "лишние". Потенциально у них вообще может быть разный тип. Давайте на простом примере разберём - что здесь "лишнее"? interface TimeoutProps { timeout: number; addEndListener?: unknown; } interface EndListenerProps { timeout?: string; addEndListener: object; } export type TransitionProps = | TimeoutProps | EndListenerProps
Обсуждают сегодня