我有以下React代码,在JavaScript中可以正常工作:
function handleSubmit(event) {
event.preventDefault()
console.dir(event.target[0].value)
console.dir(event.target.usernameInput.value)'EventTarget'.
console.dir(event.target.elements.usernameInput.value)
}
return (
<form onSubmit={handleSubmit}>
<label htmlFor="usernameInput">Username:</label>
<input id="usernameInput" type="text" onChange={handleChange} />
[...]
我希望用TypeScript实现相同的功能,但无法访问event.target[0]、event.target.elements或者event.target.usernameInput,而是收到“在类型'EventTarget'上不存在属性'0'”和“在类型'EventTarget'上不存在属性'usernameInput'”。
以下是TypeScript代码:
const handleSubmit = (event: FormEvent<HTMLFormElement>) => {
event.preventDefault()
console.dir(event.target[0].value) // Property '0' does not exist on type 'EventTarget'.
console.dir(event.target.usernameInput.value) // Property 'usernameInput' does not exist on type 'EventTarget'.
console.dir(event.target.elements.usernameInput.value) // Property 'elements' does not exist on type 'EventTarget'.
我如何访问这些属性?