使用ts的时候,使用那些组件库的回调事件,他们为了兼容会把参数的类型定的很广,比如elemenui plus 的radio组件的change, val传递的类型可以是string | number | boolean | undefined, 使用的时候我能确只使用了string类型,但是我这样写它就会警告报错,这种地方ts类型该怎么定义
const onChangeMethod = (value: string) => {
}
<el-form-item label="调整类型" prop="adjustAmountMethod">
<el-radio-group v-model="form.adjustAmountMethod" @change="onChangeMethod">
<el-radio value="plus">
增加
</el-radio>
<el-radio value="minus">
减少
</el-radio>
</el-radio-group>
</el-form-item>
难道只能像下面这两种,把类型全部都写吗
const onChangeMethod = (value: string | number | boolean | undefined) => {
}
<el-form-item label="调整类型" prop="adjustAmountMethod">
<el-radio-group v-model="form.adjustAmountMethod" @change="(val: string | number | boolean | undefined) => (val as string)">
<el-radio value="plus">
增加
</el-radio>
<el-radio value="minus">
减少
</el-radio>
</el-radio-group>
</el-form-item>
使用$event接收参数,再使用as断言为string类型。
@change="onChangeMethod($event as string)"
不过确实写得不太优雅。