Microsoft/TypeScript
HTMLFormControlsCollection namedItem should return only form input elements
開放
#39,003 建立於 2020年6月10日
BugDomain: lib.d.tsHelp Wanted
倉庫指標
- 星標
- (108,860 顆星)
- PR 合併指標
- (PR 指標待抓取)
描述
TypeScript Version: 3.9.2
Search Terms: HTMLFormControlsCollection RadioNodeList namedItem
Code
declare const form: HTMLFormElement;
const element = form.elements.namedItem('foo')
if (element && !(element instanceof RadioNodeList)) {
console.log('eee', element.value) // <<< Property 'value' does not exist on type 'Element'
}
Expected behavior: According to MDN, namedItem() on a HTMLFormControlsCollection only returns a specific set of element types.
HTMLFormControlsCollectionshould extendHTMLCollectionOf<HTMLButtonElement | HTMLFieldSetElement | HTMLInputElement | HTMLObjectElement | HTMLOutputElement | HTMLSelectElement | HTMLTextAreaElement>HTMLFormControlsCollection.namedItem()should returnRadioNodeList | HTMLButtonElement | HTMLFieldSetElement | HTMLInputElement | HTMLObjectElement | HTMLOutputElement | HTMLSelectElement | HTMLTextAreaElement | nullRadioNodeListshould extendNodeListOf<HTMLButtonElement | HTMLFieldSetElement | HTMLInputElement | HTMLObjectElement | HTMLOutputElement | HTMLSelectElement | HTMLTextAreaElement>
Actual behavior: HTMLFormControlsCollection.namedItem() return type is not specific enough (Element).
Related Issues: #19437