Typescript addEventListener

Created By: chatGPT

In TypeScript, you can easily add an event listener to elements in the DOM. The addEventListener method allows you to specify the type of event to listen for (like click, keyup, etc.) and a callback function that executes when the event occurs.
// Get a reference to the button
const button = document.getElementById('myButton');

if (button) {
    button.addEventListener('click', (event) => {
        console.log('Button was clicked!');
    });
}
The above code checks if the button exists to avoid any null reference errors. Using arrow functions in the event listener makes the syntax more concise and the this context is correctly bound.
// Setting up an event on a text input
const input = document.getElementById('myInput');

if (input instanceof HTMLInputElement) {
    input.addEventListener('input', (event) => {
        console.log('Input value: ', input.value);
    });
}
You can also use TypeScript's interfaces to define the event types, creating a more robust code. Here's an example of typing the event parameter in the callback function.
const button = document.getElementById('myButton');

if (button) {
    button.addEventListener('click', (event: MouseEvent) => {
        console.log('Mouse clicked at coordinates:', event.clientX, event.clientY);
    });
}
To remove an event listener later, store a reference to the callback function and use the removeEventListener method. It’s important to use the same callback reference you used when adding the listener.
const handleClick = (event: MouseEvent) => {
    console.log('Button clicked!');
};

if (button) {
    button.addEventListener('click', handleClick);
    // To remove the event listener later
    button.removeEventListener('click', handleClick);
}
Introduction And SetupVariablesData TypesAnyUnknownVoidNeverStringNumberBooleanArrayTupleEnumObjectInterfaceType AliasMethodsFunctionArrow FunctionReturn TypeParametersDefault ParametersOptional ParametersRest ParametersControl FlowIf StatementElse StatementSwitch StatementFor LoopWhile LoopDo While LoopFor...of LoopFor...in LoopBreak StatementContinue StatementFunctionsFunction OverloadingRecursive FunctionExpression FunctionOperatorsArithmetic OperatorsAssignment OperatorsComparison OperatorsLogical OperatorsBitwise OperatorsConditional (ternary) OperatorData StructuresArrayTupleObjectMapSetCommentsSingle Line CommentMulti Line CommentSyntaxType AnnotationsType InferenceNamespaceModuleExportImportDecoratorsAmbient DeclarationsEvent HandlingEvent ListenersAddEventListenerRemoveEventListenerError HandlingTry...catch StatementThrow StatementFinally BlockCustom Error TypesAsync AwaitPromisesGenericsConditional TypesMapped TypesIntersection TypesUnion TypesLiteral TypesDiscriminated UnionsType GuardsTypeof GuardInstanceof GuardAssertion FunctionsModule Augmentation