【发布时间】:2021-04-07 16:41:09
【问题描述】:
我正在从表单中获取值。我正在为我的项目使用tsx。但是我很不高兴使用这样的长元素类型:
handleChange = (e:React.ChangeEvent<HTMLInputElement> | React.ChangeEvent<HTMLTextAreaElement> | React.ChangeEvent<HTMLSelectElement>, id: string ) =>{
e.preventDefault();
const {value} = e.target;
this.setState((prev) => ({fields: {...this.state.fields, [id]:value}}));
console.log(id, this.state.fields);
}
e(事件)在哪里:
e:React.ChangeEvent<HTMLInputElement> | React.ChangeEvent<HTMLTextAreaElement> | React.ChangeEvent<HTMLSelectElement>
这么长的类型声明。有没有办法缩短这个?或任何其他类型的帮助来处理所有表单元素?
提前致谢。
【问题讨论】:
-
我猜你可以使用
alias,但你必须在其他地方声明长类型名称,所以我猜这不是你要找的 -
@SinanYaman - 是的,你是对的。
-
它并不完美,但也许this 可以提供帮助
标签: reactjs typescript typescript-typings tsx