This repository contains my personal study project for Part 9: TypeScript of the Full Stack Open course.
Part 9 is all about learning TypeScript, a typed superset of JavaScript developed by Microsoft that compiles to plain JS. The focus is on building full-stack features using TypeScript both on the backend (Node + Express) and frontend (React), while working with real-world tools like linters, data validation libraries, and predefined codebases.
This part was created by Tuomo Torppa, Tuukka Peuraniemi, and Jani Rapo from Terveystalo, the largest private healthcare service provider in Finland.
Here’s a short overview of each section and what I learned from it:
- Why TypeScript exists and how it helps catch errors early
- Benefits of static typing in large applications
- TypeScript’s relationship with JavaScript
- How to set up a TypeScript environment
- Basic type annotations: primitives, arrays, tuples, enums, unions
- How to write and use custom types and interfaces
- How to apply types in an Express backend
- Typing route parameters, request bodies, and responses
- Creating reusable types for data models
- Validating incoming data using the
zodlibrary
- How to type React components, props, and useState/useEffect hooks
- Working with event types and forms
- Creating type-safe components and reusable types for props
- A full-stack TypeScript app where I got to combine everything
- Built a frontend with React + TypeScript and backend with Express + TypeScript
- Used
zodto validate data at runtime - Practiced working in a larger codebase with strict typing and multiple modules
- TypeScript
- React
- Express
- Zod for data validation
- ESLint with strict rules
- Visual Studio Code for development
This repo includes both backend and frontend code. I’ve tried to follow best practices and focus on writing clear, typed, and maintainable code. The project helped me better understand how TypeScript fits into a full-stack application and gave me more confidence working with both frontend and backend TypeScript projects.
Thanks for checking it out! 💙