我正在为我正在使用的库编写类型定义。库中的一个函数标识由整数单击的鼠标按钮:
//index.d.ts
export as namespace myLib;
// activates the library listening for a specific mouse button
function activate(button : number ) : void
Run Code Online (Sandbox Code Playgroud)
我引入了一个枚举来使它更好:
//index.d.ts
export as namespace myLib;
export enum MouseButton {
LEFT = 1,
MIDDLE = 2,
RIGHT = 4
}
export function activate(button : MouseButton ) : void;
Run Code Online (Sandbox Code Playgroud)
现在,当我导入这个函数并使用它时,一切都会编译,但我猜枚举在浏览器中执行时被剥离和未定义。错误消息说Cannot read property 'LEFT' of undefined
。
因此,我像这样重新排列了文件:
//MouseButton.ts
export enum MouseButton {
LEFT = 1,
MIDDLE = 2,
RIGHT = 4
}
//index.d.ts
export as namespace myLib; …
Run Code Online (Sandbox Code Playgroud)