function startGame() { // Starting a new game. let playerName: string = 'Audrey'; logPlayer(playerName); const messagesElement: HTMLElement | null = document.getElementById('messages'); // We know messagesElement cannot be null because we control the markup, so // we can use a non-null type assertion const element = messagesElement!; element.innerText = 'Welcome to MultiMath! Starting a new game'; console.log('Starting new game'); } function logPlayer(name: string) { console.log(`New game starting for player: ${name}.`); } function arm(doc: HTMLDocument) { // We know getElementById() cannot be null because we control the markup, so // we can use a non-null type assertion on the function call result. doc.getElementById('startGame')!.addEventListener('click', startGame); } arm(document); // Type assertions (not casting, more like in Go). let value: any = 42; let fixedString1: string = (value).toFixed(2); let fixedString2: string = (value as number).toFixed(2); console.log(value, fixedString1, fixedString2);