Les erreurs courantes des développeurs TypeScript débutants : comment écrire un code propre et sûr
TypeScript est un outil puissant qui aide les développeurs à écrire un code JavaScript plus prévisible et plus sûr. Cependant, lors du passage de JS, de nombreux débutants commettent les mêmes erreurs, annulant les avantages du typage strict. Dans cet article, nous analyserons les 4 erreurs les plus courantes des développeurs TypeScript débutants et montrerons comment les corriger à l'aide d'exemples clairs.
1. Abuser du type any
L'erreur la plus courante et la plus dangereuse est d'utiliser any partout où TypeScript vous demande de spécifier un type. Cela transforme votre code en JavaScript classique, vous privant des suggestions de l'éditeur et de la vérification de type lors de la compilation.
❌ Mauvais exemple :
function processData(data: any) { return data.name.toUpperCase();}
const result = processData(42); // Erreur d'exécution ! Number n'a pas de propriété name✅ Bon exemple :
interface UserData { name: string; age: number;}
function processData(data: UserData): string { return data.name.toUpperCase();}
const user: UserData = { name: "Ivan", age: 30 };const result = processData(user); // Fonctionne correctementConseil : Essayez d'utiliser unknown au lieu de any si le type est vraiment inconnu. unknown vous obligera à effectuer une vérification de type avant d'utiliser la valeur.
2. Ignorer le mode strict
De nombreux développeurs débutants désactivent le mode strict (strict: true) dans tsconfig.json pour "ne pas être distraits par les erreurs". Cela vous prive du principal avantage de TypeScript : la détection précoce des bogues potentiels.
Ce que comprend le mode strict :
strictNullChecks— interdit d'assignernulletundefinedaux variables sauf indication explicite.noImplicitAny— interdit l'utilisation implicite deany.strictFunctionTypes— vérification plus stricte des types de fonctions.
❌ Sans mode strict :
function getLength(value: string | null) { return value.length; // Erreur d'exécution si value = null}✅ Avec mode strict :
function getLength(value: string | null): number { if (value === null) { return 0; // Gérer null explicitement } return value.length; // TypeScript sait que value est une chaîne}Conseil : Activez toujours "strict": true dans tsconfig.json. Cela vous fera gagner des heures de débogage à l'avenir.
3. Mauvaise gestion de l'asynchronie
Les erreurs avec les promesses et async/await sont des classiques. Les débutants oublient souvent de gérer les erreurs ou typent incorrectement les fonctions asynchrones.
❌ Mauvais exemple :
async function fetchData(url: string) { const response = await fetch(url); const data = response.json(); // Oubli du await ! return data;}✅ Bon exemple :
interface ApiResponse { id: number; title: string;}
async function fetchData(url: string): Promise<ApiResponse> { try { const response = await fetch(url); if (!response.ok) { throw new Error(`Erreur HTTP ! statut : ${response.status}`); } const data: ApiResponse = await response.json(); return data; } catch (error) { console.error("Erreur de chargement des données :", error); throw error; // Relancer l'erreur }}Conseil : Utilisez toujours try...catch pour gérer les erreurs dans les fonctions asynchrones et n'oubliez pas await lorsque vous appelez des méthodes qui retournent une promesse.