存在名称冲突时如何访问 Typings 中的 JavaScript 内置函数?
How do I access JavaScript built-ins in Typings when there are name conflicts?
我正在努力更新 Paper.js 在以下 GitHub 存储库中找到的类型:
github.com/clark-stevenson/paper.d.ts
Paper.js有自己的MouseEvent class, MouseEvent。它没有扩展 JavaScript 的 MouseEvent,它是一个同名的包装器。这就是整个问题。当有同名的 class 时,如何引用 JavaScript 的内置 MouseEvent?
由于我自己从未实例化过 Paper.js 鼠标事件,我目前的解决方法是将其重命名为 PaperMouseEvent:
export class PaperMouseEvent extends Event {
constructor(type:string, event:MouseEvent, point:Point, target:Item, delta:Point)
/**
* JavaScript's mouse event
*/
event:MouseEvent;
}
有没有办法正确地做到这一点,或者这是一个常见的解决方法?
如果我理解正确,那么您只需要做:
declare module "paper" {
class MouseEvent extends Event {
constructor(type:string, event:MouseEvent, point:Point, target:Item, delta:Point);
event: MouseEvent;
}
}
编辑
您可以尝试使用类型别名 "save reference" 到内置 MouseEvent
:
type NativeMouseEvent = MouseEvent;
declare module "paper" {
class MouseEvent extends Event {
constructor(type:string, event:MouseEvent, point:Point, target:Item, delta:Point);
event: NativeMouseEvent;
}
}
我正在努力更新 Paper.js 在以下 GitHub 存储库中找到的类型:
github.com/clark-stevenson/paper.d.ts
Paper.js有自己的MouseEvent class, MouseEvent。它没有扩展 JavaScript 的 MouseEvent,它是一个同名的包装器。这就是整个问题。当有同名的 class 时,如何引用 JavaScript 的内置 MouseEvent?
由于我自己从未实例化过 Paper.js 鼠标事件,我目前的解决方法是将其重命名为 PaperMouseEvent:
export class PaperMouseEvent extends Event {
constructor(type:string, event:MouseEvent, point:Point, target:Item, delta:Point)
/**
* JavaScript's mouse event
*/
event:MouseEvent;
}
有没有办法正确地做到这一点,或者这是一个常见的解决方法?
如果我理解正确,那么您只需要做:
declare module "paper" {
class MouseEvent extends Event {
constructor(type:string, event:MouseEvent, point:Point, target:Item, delta:Point);
event: MouseEvent;
}
}
编辑
您可以尝试使用类型别名 "save reference" 到内置 MouseEvent
:
type NativeMouseEvent = MouseEvent;
declare module "paper" {
class MouseEvent extends Event {
constructor(type:string, event:MouseEvent, point:Point, target:Item, delta:Point);
event: NativeMouseEvent;
}
}