Comment réussir un entretien TypeScript : les meilleures questions avec exemples
TypeScript s'est solidement imposé comme le standard pour le développement d'entreprise en JavaScript. Si vous vous préparez à un entretien, il est important non seulement de connaître la syntaxe, mais aussi de comprendre comment fonctionnent les types, les generics et les utilitaires. Dans cet article, nous avons analysé les meilleures questions souvent posées lors des entretiens techniques, avec des réponses détaillées et des exemples de code.
Ce contenu sera utile aussi bien aux développeurs juniors qu'à ceux qui souhaitent rafraîchir leurs connaissances avant un rendez-vous important.
1. Qu'est-ce que TypeScript et pourquoi est-il nécessaire ?
TypeScript est un sur-ensemble de JavaScript strictement typé qui se compile en JS standard. L'objectif principal est d'ajouter un typage statique, ce qui permet :
- De détecter les erreurs à la compilation, et non à l'exécution.
- D'améliorer la lisibilité et la maintenabilité du code.
- D'obtenir l'autocomplétion et le refactoring dans l'IDE.
Exemple :
// JavaScript
function add(a, b) {
return a + b; // a et b peuvent être n'importe quoi
}
// TypeScript
function add(a: number, b: number): number {
return a + b; // erreur de compilation si on passe une chaîne
}
Lors de l'entretien, il est important de souligner que TypeScript ne remplace pas JavaScript, mais le complète, rendant le code plus sûr.
2. Types de base et leur utilisation
TypeScript propose un large ensemble de types de base. Les questions sur ce sujet testent votre compréhension du système de types.
Énumérez les types principaux :
number,string,booleannull,undefinedany— désactive la vérification des types (essayez de l'éviter)void— pour les fonctions qui ne retournent riennever— pour les fonctions qui ne se terminent jamais (par exemple, lèvent une exception)
Exemple avec les types union :
type Status = 'active' | 'inactive' | 'pending';
let userStatus: Status = 'active'; // seulement une des trois valeurs
On demande souvent la différence entre interface et type. Réponse : interface peut être étendue (extends), contrairement à type. Pour les objets, interface est préférable ; pour les primitifs et les unions, type est préférable.
3. Les Generics — la base de la flexibilité
Les generics permettent de créer des composants fonctionnant avec différents types sans perte de typage. C'est l'une des questions les plus fréquentes.
Exemple d'un generic simple :
function identity<T>(arg: T): T {
return arg;
}
const result = identity<string>('hello'); // type string
const numberResult = identity(42); // type number (inférence de type)
Question : Comment contraindre un generic ?
Utilisez le mot-clé extends :
function getLength<T extends { length: number }>(arg: T): number {
return arg.length;
}
getLength('hello'); // 5
getLength([1,2,3]); // 3
// getLength(123); // erreur : number n'a pas de length
On vous interrogera aussi sur les generics dans les interfaces :
interface ApiResponse<T> {
data: T;
status: number;
error?: string;
}
const userResponse: ApiResponse<{ id: number; name: string }> = {
data: { id: 1, name: 'Alice' },
status: 200
};
4. Types utilitaires (Utility Types)
Les utilitaires intégrés de TypeScript simplifient les manipulations de types. Les connaître est un signe de développeur expérimenté.
Top 5 des utilitaires à connaître :
Partial<T>— rend tous les champs optionnels.Required<T>— rend tous les champs obligatoires.Pick<T, K>— sélectionne uniquement les clés spécifiées.