You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript下Quasar QTable onRequest事件类型标注报错

问题原因

你出现类型不兼容错误的核心原因是类型用错了层级:

  • QTableProps['onRequest'] 是整个onRequest事件回调函数本身的类型,它的完整签名是 (requestProp: { /* 分页、筛选等相关属性 */ }) => void
  • 你直接把这个函数整体的类型标注给回调的入参props,相当于告诉TypeScript「入参props是一个和onRequest结构一致的函数」,但实际上事件触发时传入的第一个参数是包含分页、筛选配置的普通对象,二者类型自然完全不匹配。
正确类型标注方案

你可以任选以下两种方式实现正确的类型标注:

方案1:用TS内置工具类型提取入参类型

使用TypeScript原生提供的Parameters工具类型,直接从QTableProps['onRequest']的类型签名中提取第一个入参的类型即可:

import type { QTableProps } from 'quasar';

// 提取onRequest回调的首个入参类型
type OnRequestParams = Parameters<QTableProps['onRequest']>[0];

function onRequest(props: OnRequestParams) {
  // 此处可获得完整类型提示,不会报类型错误
  console.log(props.pagination);
  console.log(props.filter);
}

方案2:直接导入Quasar导出的独立入参类型

Quasar已经单独导出了onRequest事件的入参类型,可以直接引入使用,不需要手动提取:

import type { QTableRequestProp } from 'quasar';

function onRequest(props: QTableRequestProp) {
  // 正常访问所有属性,类型校验通过
  const { page, rowsPerPage, sortBy, descending } = props.pagination;
  // 也可正常调用props.filter、props.getCellValue等内置方法
}

注意:引入时建议加type修饰符,标记为纯类型导入,避免不必要的运行时引入。

内容的提问来源于stack exchange,提问作者M.A.T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 18:27:34