当名称冲突时,如何在Typings中访问JavaScript内置函数?

时间:2016-12-05 21:57:36

标签: typescript typescript-typings

我正在努力更新在以下GitHub回购中找到的Paper.js打字:

github.com/clark-stevenson/paper.d.ts

Paper.js有自己的MouseEvent类MouseEvent。它没有扩展JavaScript的MouseEvent,它是一个包含相同名称的包装器。这就是整个问题。当有一个具有相同名称的类时,如何引用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;
}

有没有办法正确地做到这一点,或者这是一个常见的解决方法?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么您只需要这样做:

declare module "paper" {
    class MouseEvent extends Event {
        constructor(type:string, event:MouseEvent, point:Point, target:Item, delta:Point);
        event: MouseEvent;
    }
}

修改

您可以尝试使用类型别名来保存参考"到内置MouseEvent

type NativeMouseEvent = MouseEvent;

declare module "paper" {
    class MouseEvent extends Event {
        constructor(type:string, event:MouseEvent, point:Point, target:Item, delta:Point);
        event: NativeMouseEvent;
    }
}