Write Object-Oriented TypeScript Well