![](/img/trans.png)
[英]typescript eslint - Type x is missing the following properties from type x
[英]Type '{ [x: number]: any; }' is missing the following properties from Pick<T, keyof T>
我有這個代碼
interface FormState {
cardNumber: string,
month: string,
year: string
}
handleInputChange = (event: React.ChangeEvent<MaskedInput>) => {
this.setState({
[event.target.name]: event.target.value
});
};
TypeScript 不知道event.target
的name
屬性是什么,但我知道它總是匹配FormState
鍵。 與value
屬性類似。
我嘗試使用類型斷言修復它,但仍然出現錯誤
type ObjectKey<T> = keyof T;
type ValueOf<T> = T[keyof T];
[event.target.name as ObjectKey<FormState>]: event.target.value as ValueOf<FormState>
我怎樣才能解決這個問題?
只需在 React.ChangeEvent 中添加目標名稱的類型:
handleInputChange = (event: React.ChangeEvent<{name: keyof FormState}>) => {
由於您正在處理輸入更改,因此更好的類型是React.ChangeEvent<HTMLInputElement>
:
type TargetName=keyof FormState
const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {
let name = event.target.name as TargetName
name===''
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.