【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"
/>
相关推荐
我的收藏手册15 小时前
性能监控shell脚本编写
前端·git·github
fantasy_arch15 小时前
SVT-AV1编码器中实现WPP依赖管理核心调度
java·前端·av1
福大大架构师每日一题15 小时前
go 1.25.1发布:重点修复net/http跨域保护安全漏洞(CVE-2025-47910)
开发语言·http·golang
Ophelia(秃头版15 小时前
经典设计模式:单例模式、工厂模式
java·开发语言·单例模式
香香甜甜的辣椒炒肉16 小时前
vue(7)-单页应用程序&路由
前端·javascript·vue.js
高级测试工程师欧阳16 小时前
HTML 表格基础
前端
Dear.爬虫16 小时前
Golang中逃逸现象, 变量“何时栈?何时堆?”
开发语言·后端·golang
不买Huracan不改名16 小时前
安装Codex(需要用npm)
前端·npm·node.js
Dorcas_FE16 小时前
axios请求缓存与重复拦截:“相同请求未完成时,不发起新请求”
前端·spring·缓存