Closed resetsix closed 1 day ago
目前你可以通过下列方式来手动声明事件对象类型:
import { NodeEvent } from '@antv/g6';
import type { IPointerEvent } from '@antv/g6';
graph.on(NodeEvent.CLICK, (event: IPointerEvent)=>{
// handler
});
目前你可以通过下列方式来手动声明事件对象类型:
import { NodeEvent } from '@antv/g6'; import type { IPointerEvent } from '@antv/g6'; graph.on(NodeEvent.CLICK, (event: IPointerEvent)=>{ // handler });
原来是这个。默认是IEvent
类型,我就觉得不是这个。翻了好久文档都没找到事件对象的参数类型是哪个
@resetsix IEvent
是一个联合类型,其中包括了多个基本的事件类型
export type IEvent =
| IGraphLifeCycleEvent
| IAnimateEvent
| IElementLifeCycleEvent
| IViewportEvent
| IPointerEvent
| IWheelEvent
| IKeyboardEvent
| IDragEvent;
@resetsix
IEvent
是一个联合类型,其中包括了多个基本的事件类型export type IEvent = | IGraphLifeCycleEvent | IAnimateEvent | IElementLifeCycleEvent | IViewportEvent | IPointerEvent | IWheelEvent | IKeyboardEvent | IDragEvent;
的确是这样,但不知道为何IEvent
对象最终只有一个类型,貌似被覆盖一样。
@resetsix
IEvent
是一个联合类型,其中包括了多个基本的事件类型export type IEvent = | IGraphLifeCycleEvent | IAnimateEvent | IElementLifeCycleEvent | IViewportEvent | IPointerEvent | IWheelEvent | IKeyboardEvent | IDragEvent;
的确是这样,但不知道为何
IEvent
对象最终只有一个类型,貌似被覆盖一样。
指定为具体的事件类型就好了,目前还没提供相关的类型签名
Describe the bug / 问题描述
背景描述
在使用 @antv/g6 v5时,我发现 NodeEvent 事件对象的类型定义似乎不完整。实际上,事件对象包含许多有用的属性,但当前的类型定义(IEvent)只包含
type
属性。这导致在使用 TypeScript 时无法获得正确的类型提示和自动补全。预期行为
事件对象的类型定义应该包含所有可用的属性,如
target
、bubbles
、cancelBubble
等。实际行为
事件对象的类型定义只包含
type
属性。Reproduction link / 重现链接
https://codesandbox.io/p/sandbox/wrtn8s?file=%2Fsrc%2FApp.tsx
Steps to Reproduce the Bug or Issue / 重现步骤
G6 Version / G6 版本
🆕 5.x
Operating System / 操作系统
macOS
Browser / 浏览器
Firefox
Additional context / 补充说明
我只测试了 NodeEvent 事件对象类型,对于其他事件对象未做测试。