HTML:
<body> <h1>Grocery List</h1> <form action="/nowhere"> <label for="item">Enter A Product</label> <input type="text" id="product" name="product" /> <label for="item">Enter A Quantity</label> <input type="number" id="qty" name="qty" /> <button>Submit</button> </form> <ul id="list"></ul> </body>Escritura de Java:
const frm = document.querySelector("form"); const prdct = document.querySelector("#product"); const qty = document.querySelector("#qty"); const mylst = document.querySelector("#list"); frm.addEventListener("submit", (e) => { e.preventDefault(); const myele = document.createElement("li"); myele.textContent = qty.value; myele.textContent += ` ${prdct.value}`; mylst.appendChild(myele); qty.value = ""; prdct.value = ""; });Como puede verse, el código VS no sugiere el atributo '.value' con otras sugerencias. cual puede ser la razon?
Document.querySelector() devuelve un Element , por lo que el editor no puede saber que tiene un value .
Si creara el elemento por javascript, entonces el editor SÍ sabe...
let input = document.createElement("input") let test = input.value // now you can get autocompleteOtra forma es usar mecanografiado:
let input:HTMLInputElement = document.querySelector("myinput")! let test = input.value // now you can get autocomplete