Levelling Up with TypeScript

04 Jun 2025

Athletic Software Engineering and TypeScript

From JavaScript to TypeScript:

Before beginning this class, I had limited experience with JavaScript from my highschool AP Computer Science Principles class. To be honest, I had barely used JavaScript and barely heard of TypeScript. Some things about JavaScript confused me, and it is clear to see that that was remedied in TypeScript, with things such as type checking. Though TypeScript at first felt intimidating, as I have made my way through the practice WOD’s and lessons, I have come to understand that the structure of TypeScript allows it to catch errors and improve my code’s readability. ES6 was completely new to me, and it made JavaScript feel far more digestible. Using features like let and const helped me understand the scope much more easily. Learning ES6 definitely made the transition from JavaScript to TypeScript smoother.

Comparing to Other Languages:

Compared to other languages I have experience in, such as C, C++, and Java, TypeScript is far more simple to learn and understand. I had to refresh my memory on how maps work for E09, but other than that, I found that TypeScript was easily building on top of my memory and knowledge of JavaScript. TypeScripts grammar adds clarity to my code, making it far faster and easier to comprehend at first glance than other languages I have worked with. I think that type checking and its ability to work with tools like VSCode will come in useful not only in ICS314 but also beyond.

TypeScript as a Programming Language:

In what I have experienced and learned so far, TypeScript is a great fit for software engineering projects. TypeScript is able to support a larger and more complex code base than JavaScript, and the language makes it easy to maintain clarity, which will no doubt be useful when focusing more on collaborative code. I think that the stricter typing system will force me to think more about data structures and prevent bugs, which will work well alongside the software engineering concepts. As with every language, not every project will be ideal to work on with TypeScript, but for large projects and collaborative work, it will no doubt be the ideal choice.

Athletic Software Engineering:

While Athletic Software Engineering is a stressful and time consuming approach, it will no doubt serve as useful in learning to absorb and truly understand the material. While I find the WOD’s stressful, I recognize the importance of learning how to be efficient. I think continual use of WOD’s will force me to reevaluate my quick thinking process, and make my code the most efficient and effective as possible. In the real world, WOD’s will prove to be useful, as they are mirroring real world scenarios in which there are deadlines. WOD’s are helping me learn to code accurately as well as efficiently. I wouldn’t classify this approach as enjoyable, but I do think it is necessary in order to produce the best real world outcomes for our learning.

The Use of AI:

In the ever changing world, AI is a controversial tool. I used ChatGPT on E09, in between attempts, in order to familiarize myself with maps, and how that would be implemented in code. While I also watched the screencast solution between attempts, I found that using Artificial Intelligence helped me to get a deeper understanding of how the concept works, as well as being able to provide me with a few examples of how it would typically be used. I think this use of AI allowed me to grow my knowledge and learn something more in depth.

In Summary:

All in all, the transition from JavaScript to TypeScript has been new, but rewarding. Refamiliarizing myself with JavaScript, learning ES6, and then transitioning to TypeScript allowed me to comprehend the importance and usability of TypeScript in software engineering. Athletic software engineering and WOD’s are stressful, but allow me to further understand the content, and learn it rather than simply memorize.