TypeScript for JavaScript Developers by Refactoring Part 1 of 2