类型 '{ [x: number]: any; }' 缺少 Pick<T, key of 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===''
};

最新更新