2017-01-16 1 views
3

Если у меня есть <input> с id asdf, и я запускаю const asdf = document.getElementById('asdf'), Поток предполагает, что asdf является HTMLElement, а не HTMLInputElement. Мне нужно asdf быть HTMLInputElement, так что Flow позвонит мне на номер value, так как value не существует на HTMLElement s, но находится на HTMLInputElement s. Поэтому, чтобы выполнить эту работу, я должен проверить if (asdf instanceof HTMLInputElement), а затем запустить код, который я хочу.Поток. Как я могу вернуть элемент HTMLInputElement с помощью getElementById без проверки instanceof?

Есть ли лучший способ сделать это?

+0

Просто брось, если вы уверены, что '# asdf' является входом? – Bergi

+0

@Bergi Спасибо за ваш ответ - как мне это сделать? Раздел «приемы» в документах, похоже, не охватывает этот случай. – hjkml

+2

А, вы имеете в виду что-то вроде 'const asdf: HTMLInputElement = (document.getElementById ('asdf'): any)'? – hjkml

ответ

-2

Если «ASDF» может быть иным, чем «вход», и вы должны быть уверены:

const asdf = document.getElementById('asdf') 

if (asdf.tagName === 'INPUT') { 
    //your code... 
} 
Смежные вопросы