【debug】ElementPlus table组件column传入formatter类型报错

报错如下:

不能将类型"((row: ShortUserPayType) => string) | ((row: ShortUserPayType) => number) | undefined"分配给类型"((row: any, column: TableColumnCtx<any>, cellValue: any, index: number) => string | VNode<RendererNode, RendererElement, { ...; }>) | undefined"。

组件要求传入的formatter函数必须定义为:

javascript 复制代码
((row: any, column: TableColumnCtx`<any>`, cellValue: any, index: number) => string | VNode<RendererNode, RendererElement, { ...; }>) | undefined"

但我不需要这么多属性,我只需要row属性。

解决方法,自定义一个Column类型:

javascript 复制代码
export interface Column {
  key: string
  title: string
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  formatter?: (...args: any) => any
}

这使得formatter 函数可以接受 ElementPlus 所期望的四个参数,也可以只接受一个参数,或者根本不接受参数。

javascript 复制代码
const columns: Column[] = [...]
html 复制代码
<el-table-column
  v-for="column in columns"
  :key="column.key"
  :prop="column.key"
  :label="column.title"
  :formatter="column.formatter"
/>
相关推荐
難釋懷16 小时前
RedisTemplate配置读写分离
前端·bootstrap·html
10Eugene16 小时前
C++/Qt自制八股文
java·开发语言·c++
冰暮流星16 小时前
javascript如何实现删除数组里面的重复元素
开发语言·前端·javascript
free-elcmacom17 小时前
C++ 默认参数详解:用法、规则与避坑指南
开发语言·c++
码云数智-大飞17 小时前
分布式事务解决方案全景指南:2PC、TCC、SAGA 与 Seata 实战
开发语言
网络点点滴17 小时前
透传属性$attrs
前端·javascript·vue.js
娇娇yyyyyy17 小时前
QT编程(10): QLineEdit
开发语言·qt
Albert Edison17 小时前
【ProtoBuf 语法详解】Any 类型
服务器·开发语言·c++·protobuf
90后的晨仔17 小时前
OpenClaw macOS 完整安装指南
前端
Moment17 小时前
尤雨溪宣布 Vite+ 正式开源,前端工具链要大一统了
前端·javascript·面试