簡體   English   中英

輸入'{ [x: number]: any; }' 缺少 Pick 中的以下屬性<t, keyof t></t,>

[英]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.targetname屬性是什么,但我知道它總是匹配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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM