A small detail that we have left aside is the isEnter function. To have cleaner code, we can isolate it in a class and define it as a static member:
class EventUtils { static isEnter(event: KeyboardEvent): boolean { let isEnterResult = false; if(event !== undefined && event.defaultPrevented) { return false; } if (event == undefined) { isEnterResult = false; } else if (event.key !== undefined) { isEnterResult = event.key === 'Enter'; } else if (event.keyCode !== undefined) { isEnterResult = event.keyCode === 13; } return isEnterResult; } }
We can invoke it as easily as before, using EventUtils.isEnter(...). This doesn't change much, but is cleaner and conveys more meaning. One important...