Back to Basics : TypeScript et pourquoi éviter ces types
Si vous utilisez TypeScript, il est important d'éviter les types non-primitifs tels que Number
, String
, Boolean
, Object
et Symbol
.
Ces types réfèrent tous à des types non-primitifs, ce qui peut causer des problèmes de performance et de vérifications d'égalité.
A la place, il est préférable d'utiliser les types primitifs correspondants : number, string, boolean, object et symbol.
let textToCheck: String = 'texte';
console.log(typeof textToCheck); // 'string'
console.log(textToCheck === 'texte'); // true
textToCheck = new String('texte');
console.log(typeof textToCheck); // 'object'
console.log(textToCheck === 'texte'); // false
Dans cet exemple, le premier test d'égalité renvoie true
, car textToCheck
est défini comme un type string primitif.
Cependant, lorsque textToCheck
est réaffecté à un objet String non-primitif créé à l'aide de la syntaxe new String()
, renvoie false
, car les objets String
ont des références différentes, même s'ils contiennent la même valeur.
Il y a également une partie de performance à considérer.
Pour en savoir plus sur les performances de JavaScript, je vous recommande de lire cet article de Mozilla : mozilla qui fait une comparaison de performance entre une chaîne littérale et sa version objet en JavaScript.
C'est tout, faites-en bon usage !