Передача пользовательского события с подробностями в обработчик событий в TS

#typescript #events

#typescript #Мероприятия

Вопрос:

Я хочу передать событие мыши вместе с объектом detail. Я получаю эту ошибку: свойство ‘detail’ не существует для типа ‘never’.ts(2339)

 interface CustomEvent {
    detail: {
        left: number;
        top: number;
        radius: number;
        label: string;
        color: string;
    };
}

export const Cursor: FC = () => {
    const onCursorEvent = (event: MouseEvent | CustomEvent) => {
        const newState = {}

        if ('detail.radius' in event) {
            newState.radius = event.detail.radius
        }


        setCursorState(newState)
    }

    const setSubscription = () => {
        const cursor$ = fromEvent<MouseEvent>(document, 'cursor')
        const move$ = fromEvent<MouseEvent>(document, 'mousemove').pipe(throttleTime(12))

        const cursorEvents = merge(
            cursor$,
            move$
        )

        cursorEvents.subscribe(event => onCursorEvent(event))
    }
}
  

Комментарии:

1. if ('detail.radius' in event) { делает не то, что вы, кажется, думаете, что это делает. Вы не можете проверить путь к вложенному свойству подобным образом. Это поиск свойства в event с этой точной строкой в качестве ключа