#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 с этой точной строкой в качестве ключа