【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"
/>
相关推荐
OTWOL25 分钟前
C语言操作符终极揭秘:表达式求值秘籍
c语言·开发语言·c++
code小生26 分钟前
微软 Microsoft Edge 浏览器插件开发者注册指南
前端·microsoft·edge·edge浏览器·浏览器插件开发者
无巧不成书021826 分钟前
Java 21 LTS 高级特性零基础通关:静态导入、项目目录规范、泛型全实战
java·开发语言·标准目录结构·泛型原理·类型安全实现
张np32 分钟前
java框架和http调用接口的区别
java·开发语言·http
Mintopia35 分钟前
日志不是越多越好:一套能落地的日志设计方法
前端
李日灐35 分钟前
【优选算法3】二分查找经典算法面试题
开发语言·c++·后端·算法·面试·二分查找·双指针
yivifu36 分钟前
一种更精细的HTML表格斑马色设置方法
前端·html
ldybk37 分钟前
教学vue
前端·javascript·vue.js
zzwq.37 分钟前
PyMySQL 详解:从入门到实战,Python 操作 MySQL 一站式指南
开发语言·python
小松加哲38 分钟前
MyBatis完整流程详解
java·开发语言·mybatis