Le but de ce workshop est de manipuler des notions avancées de TypeScript dans le cadre d'une application React. Ce projet Next.js vous permettra d'explorer progressivement les fonctionnalités avancées de TypeScript à travers 7 exercices pratiques.
Ce workshop vous permettra de maîtriser :
- Génériques avancés : Création de composants et fonctions réutilisables
- Contraintes sur les génériques : Restriction des types acceptés
- Validation de données : Intégration de Zod avec TypeScript
- Types opaques : Création de types "marqués" pour la sécurité
- Next.js 15 avec App Router
- React 19
- TypeScript 5
- Tailwind CSS 4
- Zod (pour la validation)
src/
├── app/ # Pages et API routes Next.js
│ ├── api/ # Endpoints API (cars, posts)
│ ├── layout.tsx # Layout principal
│ └── page.tsx # Page d'accueil
├── components/ # Composants React
│ └── Table.tsx # Composant Table générique
└── lib/ # Utilitaires et configuration
├── client.ts # Client API avec gestion d'erreurs
└── schemas.ts # Schémas Zod (à créer)
- Objectif : Créer des types génériques pour l'API
- Concepts :
ApiResponse<T>
, gestion d'erreurs sans throw, types utilitaires
- Objectif : Créer un composant Table réutilisable
- Concepts : Composants génériques, types utilitaires, props typées
- Objectif : Restreindre les types acceptés par le composant
- Concepts :
extends
, typeWithId
, validation de structure
- Objectif : Validation runtime et inférence automatique des types
- Concepts : Schémas Zod,
z.infer<>
, validation des données
- Objectif : Création de types "marqués" pour la sécurité
- Concepts : Types opaques,
unique symbol
, validation stricte
- Cloner le projet
git clone <repository-url>
cd workshop-ts-advanced
- Installer les dépendances
npm install
- Lancer le serveur de développement
npm run dev
- Ouvrir votre navigateur
http://localhost:3000
- Connaissance de base de TypeScript
- Familiarité avec React et Next.js
- Compréhension des concepts de génériques
Bon workshop ! 🚀