Я предложил способ Typescript - вам нужно определить две функции, тип возвращаемого значения которых является предикатом типа: ClipboardEvent
или KeyboardEvent
. ( Документ )
Проверка event
это событие ClipboardEvent или нет:
function isClipboardEvent(event: KeyboardEvent | ClipboardEvent): event is ClipboardEvent {
return (event as ClipboardEvent).clipboardData !== undefined
}
еще раз, проверка event
это событие KeyboardEvent или нет:
function isKeyboardEvent(event: KeyboardEvent | ClipboardEvent): event is KeyboardEvent {
return (event as KeyboardEvent).key !== undefined
}
Теперь, в функции cleanInputValue
, просто проверьте объект event
и выполните свою задачу:
function cleanInputValue(event: KeyboardEvent | ClipboardEvent): void {
let incomingValue: string = ``
if (isClipboardEvent(event) && event.clipboardData) { // clipboardData can be null
incomingValue = event.clipboardData.getData(`text`)
} else if (isKeyboardEvent(event)) {
incomingValue = event.key
}
}