如何在 TypeScript 中为 Element UI Plus 组件的回调事件定义确切类型?

新手上路,请多包涵

使用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>
阅读 462
1 个回答

使用$event接收参数,再使用as断言为string类型。
@change="onChangeMethod($event as string)"
不过确实写得不太优雅。

推荐问题