export interface IKeyStates { control: boolean; shift: boolean; alt: boolean; } class KeyStateProvider { register() { const keyStates: IKeyStates = { control: false, shift: false, alt: false }; let element: HTMLElement = window.document.body; element.addEventListener("keydown", function (event) { if (event.key === "Alt") keyStates.alt = true; if (event.key === "Control") keyStates.control = true; if (event.key === "Shift") keyStates.shift = true; }); element.addEventListener("keyup", function (event) { if (event.key === "Alt") keyStates.alt = false; if (event.key === "Control") keyStates.control = false; if (event.key === "Shift") keyStates.shift = false; }); this.keyStates = keyStates; } keyStates: IKeyStates; constructor() { this.keyStates = { control: false, alt: false, shift: false }; this.register(); } } export const keyStateProvider = new KeyStateProvider(); // usage: import { keyStateProvider } from "./helpers/KeyStateProvider"; if (keyStateProvider.keyStates.control) { // control is pressed }
833300cookie-checkTypescript global keystate