【发布时间】:2019-12-10 10:51:48
【问题描述】:
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const { value } = e.target;
setUserName(value)
}
这是我的 handleChange 函数,第一次在 react 中编写 typescript。我想知道为什么我在 vs 代码中得到以下内容:
Property 'value' does not exist on type 'EventTarget & HTMLInputElement'.ts(2339)
一切正常,但这不会消失。
编辑:首先,感谢您分享该备忘单!一定能帮上大忙!
这是完整的文件:
import React, { useState } from "react";
const App: React.FC = () => {
const [userName, setUserName] = useState("");
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const { value } = e.target;
setUserName(value);
};
return (
<div>
<form>
<input
type="text"
placeholder="username"
value={userName}
onChange={handleChange}
/>
</form>
</div>
);
};
export default App;
我尝试直接在 onChange 属性中删除句柄更改并退出函数,但问题仍然存在。
可能是我的 tsconfig.json 有问题吗?我只是使用 CRA 的默认配置
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react"
},
"include": [
"src"
]
}
再次感谢
【问题讨论】:
标签: reactjs typescript