我正在为图表使用React 胜利库,并且正在使用 TypeScript。我已将@types/victory包添加到我的项目中,但不幸的是,它缺少我需要的一堆关键定义。对于某些接口,它缺少几个属性,所以(使用这个答案),我创建了一个自定义文件来将这些属性添加到接口中。
但是,现在我有一个问题:为事件定义的接口有一个名为eventHandlers
defined 的属性,但它又缺少一个重要的定义,它是如何定义的:
export interface EventPropTypeInterface<TTarget, TEventKey> {
/* other properties */,
eventHandlers: {
[key: string]:
{ (event: React.SyntheticEvent<any>): EventCallbackInterface<TTarget, TEventKey> } |
{ (event: React.SyntheticEvent<any>): EventCallbackInterface<TTarget, TEventKey>[] }
}
但是,问题是该函数应该允许接受第二个参数,例如(我不确定第二个参数的类型,所以我有any
):
{ (event: React.SyntheticEvent<any>, dataPoint: any): EventCallbackInterface<TTarget, TEventKey> }
所以,我试图在我自己的定义中包含这个属性:
declare module "victory" {
export interface EventPropTypeInterface<TTarget, TEventKey> {
eventHandlers: {
[key: string]:
{ (event: React.SyntheticEvent<any>, dataPoint: any): EventCallbackInterface<TTarget, TEventKey> } |
{ (event: React.SyntheticEvent<any>, dataPoint: any): EventCallbackInterface<TTarget, TEventKey>[] }
}
}
但是现在,TypeScript 抱怨目录index.d.ts
中的@typings
,说它eventHandlers
必须是我定义的类型。
有没有办法使用提供的类型定义文件,并以某种方式用我自己的定义“增强”它,类似于我在添加新属性时对其他接口所做的事情?