Error: Parameter 'e' implicity has an 'any' type. TS7006 - React Typescript
Error: Parameter 'e' implicity has an 'any' type. TS7006 - React Typescript
参数 'e' 隐式具有 'any' 类型。 TS7006
15 | const amount = useSelector((state: State) => state.bank)
16 |
17 | const handleChangeNumber = (e) => {
| ^
18 | setInputNumber(+e.target.value)
19 | }
20 |
上面那个错误信息,下面是代码,我不知道如何修复它。我是打字稿的新手。我可以在变量中定义类型,但在参数中如何为 e
或 event
的确切类型定义 e
或 event
的类型
import "./App.css";
import { useState } from 'react';
import { useDispatch, useSelector } from "react-redux";
import { bindActionCreators } from "redux";
import { actionCreators, State } from "./state";
function App() {
const [inputNumber, setInputNumber] = useState(0);
const dispatch = useDispatch();
const { depositMoney, withdrawMoney, bankrupt } = bindActionCreators(
actionCreators,
dispatch
);
const amount = useSelector((state: State) => state.bank)
const handleChangeNumber = (e) => {
setInputNumber(+e.target.value)
}
return (
<div className="App">
<h1>{amount}</h1>
<button onClick={() => depositMoney(inputNumber)}>Deposit</button>
<button onClick={() => withdrawMoney(inputNumber)}>Withdraw</button>
<button onClick={() => bankrupt()}>Bankrupt</button>
<input type="number" value={inputNumber} onChange={handleChangeNumber} />
</div>
);
}
export default App;
你可以通过定义内联函数让TS自动推断类型:
onChange={(e) => {
setInputNumber(e.currentTarget.value);
}}
或者您可以开始编写内联函数:
onChange={(e) => {
}}
然后将鼠标悬停在像 VSCode 这样的类型感知编辑器中的参数上,以查看它是什么类型。这里是React.ChangeEvent<HTMLInputElement>
,所以你可以
const handleChangeNumber = (e: React.ChangeEvent<HTMLInputElement>) => {
setInputNumber(+e.currentTarget.value)
}
然后返回 onChange={handleChangeNumber}
。
您可以按如下方式使用
const handleChangeNumber = (e: React.ChangeEvent<HTMLInputElement>) => {
setInputNumber(e.target.value)
}
您可以使用 React.ChangeEvent<HTMLInputElement>
作为类型。
const handleChangeNumber = (e: React.ChangeEvent<HTMLInputElement>) => {
setInputNumber(+e.target.value)
}
参数 'e' 隐式具有 'any' 类型。 TS7006
15 | const amount = useSelector((state: State) => state.bank)
16 |
17 | const handleChangeNumber = (e) => {
| ^
18 | setInputNumber(+e.target.value)
19 | }
20 |
上面那个错误信息,下面是代码,我不知道如何修复它。我是打字稿的新手。我可以在变量中定义类型,但在参数中如何为 e
或 event
e
或 event
的类型
import "./App.css";
import { useState } from 'react';
import { useDispatch, useSelector } from "react-redux";
import { bindActionCreators } from "redux";
import { actionCreators, State } from "./state";
function App() {
const [inputNumber, setInputNumber] = useState(0);
const dispatch = useDispatch();
const { depositMoney, withdrawMoney, bankrupt } = bindActionCreators(
actionCreators,
dispatch
);
const amount = useSelector((state: State) => state.bank)
const handleChangeNumber = (e) => {
setInputNumber(+e.target.value)
}
return (
<div className="App">
<h1>{amount}</h1>
<button onClick={() => depositMoney(inputNumber)}>Deposit</button>
<button onClick={() => withdrawMoney(inputNumber)}>Withdraw</button>
<button onClick={() => bankrupt()}>Bankrupt</button>
<input type="number" value={inputNumber} onChange={handleChangeNumber} />
</div>
);
}
export default App;
你可以通过定义内联函数让TS自动推断类型:
onChange={(e) => {
setInputNumber(e.currentTarget.value);
}}
或者您可以开始编写内联函数:
onChange={(e) => {
}}
然后将鼠标悬停在像 VSCode 这样的类型感知编辑器中的参数上,以查看它是什么类型。这里是React.ChangeEvent<HTMLInputElement>
,所以你可以
const handleChangeNumber = (e: React.ChangeEvent<HTMLInputElement>) => {
setInputNumber(+e.currentTarget.value)
}
然后返回 onChange={handleChangeNumber}
。
您可以按如下方式使用
const handleChangeNumber = (e: React.ChangeEvent<HTMLInputElement>) => {
setInputNumber(e.target.value)
}
您可以使用 React.ChangeEvent<HTMLInputElement>
作为类型。
const handleChangeNumber = (e: React.ChangeEvent<HTMLInputElement>) => {
setInputNumber(+e.target.value)
}