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

React-Konva使用toDataURL时报Property does not exist on type 'never'错误如何解决

报错原因
  • 未给stageRef显式声明正确的TypeScript类型:使用React的useRef时如果初始值设为null且未指定泛型,TypeScript会自动将ref.current的类型推导为never,never类型不存在任何属性和方法,因此调用toDataURL会抛出类型错误。
  • 你没有指定ref挂载的是Konva的Stage实例类型,TypeScript无法识别该实例自带的toDataURL方法。
解决方法
  1. 先从Konva包中导入Stage类型定义
import type { Stage } from 'konva/lib/Stage';
  1. 创建useRef时显式绑定泛型类型
const stageRef = useRef<Stage | null>(null);
  1. 原有导出逻辑不需要修改,现有的非空判断已经覆盖了null的边界情况
const handleExport = () => {
  if (stageRef.current != null) {
    console.log(stageRef.current);
    const uri = stageRef.current.toDataURL();
    console.log(uri);
  }
};

如果仍偶发类型校验报错,可以添加类型断言兜底:

const uri = (stageRef.current as Stage).toDataURL();

内容的提问来源于stack exchange,提问作者Sylvain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:36:00