An Interest In:
Web News this Week
- April 18, 2024
- April 17, 2024
- April 16, 2024
- April 15, 2024
- April 14, 2024
- April 13, 2024
- April 12, 2024
Interface et type quand les utiliser ?
La diffrence entre interface
et type
dans TypeScript est assez difficile cerner et c'est normal ! Ils sont tellement similaires, qu'il est possible de les interchanger sans que a ne soit problmatique.
Alors quand utiliser l'un et quand utiliser l'autre ?
Cela dpend de vous, il n'y a pas de rgle bien dfinie.
Le seul conseil valable serait de bien dfinir les conventions d'usage que vous souhaitez mettre en place dans vos projets et de les respecter.
Une petite note en passant, on parle de type
mais a n'est pas tout fait correcte, ce que nous crons est un alias de type.
Un exemple simple qui permettrait de mieux comprendre serait de dfinir un alias de type qui correspondrait un type primitif (string, boolean, number, ...)
type MonAliasDeType = string;type MonAutreAliasDeType = { maPropriete: MonAliasDeType, ...}
Nous faisons rfrence un type.
Mon point de vue
Personnellement j'ai beaucoup utilis les interfaces, tellement, qu'il tait trs rare que j'en vienne utiliser les types.
Mais aprs avoir feuillet la documentation TypeScript, lu quelques articles et rvis mes cours, j'ai maintenant une ide plus claire et surtout une raison pour utiliser soit une interface
soit un type
.
J'utilise type
parce qu'il permet de dfinir plus de cas, de manire plus parlante et est plus strict donc, selon moi, plus adapt pour dcrire notre code. En effet, les types ne sont pas ouverts, c'est dire qu'ils ne peuvent pas tre modifis aprs avoir t dfinis.
Contrairement aux interfaces qui, quant elles, permettent la fusion, c'est dire que si l'on dclare deux fois, ou plus, une interface avec le mme nom, a ne sera pas considr comme une erreur et aura pour effet de fusionner les interfaces.
interface MonInterface { a: string;}interface MonInterface { b: string;}let maVariable: MonInterface;maVariable.amaVariable.b
A utiliser les interfaces on prendrait donc le risque de fusionner celles qui ont le mme nom. Mme si a ne semble pas tre un problme courant, il serait possible de fusionner des interfaces sans s'en rendre compte.
type
, quant lui, retournera une erreur.
type
a aussi l'avantage de proposer plus possibilits pour dcrire le format des donnes, voir les Discriminated Types (|) et les Intersection types (&).
A quoi servent les interfaces ? me diriez-vous.
J'utilise interface quand j'ai besoin d'ajouter des proprits une interface globale, comme celle de Window ou dans les librairies que je cre, je dfinie des interfaces pour qu'elles puissent tre surcharges.
Un autre cas d'utilisation serait pour les interfaces de classe.
class MaClass implements MonInterface {}
Pour rcapituler
J'utilise type
par dfaut parce qu'il :
- Permet de dfinir plus de cas
- N'est pas ouvert, donc plus strict (on ne peut pas le modifier aprs sa dclaration)
J'utilise interface
dans le cas o :
- Je veux tendre une interface globale comme
Window
- Je veux tendre ou pouvoir tendre une interface venant d'une librairie
- Je dois utiliser
implements
Sur ce, bon dev ;-)
Original Link: https://dev.to/gfab/interface-et-type-quand-les-utiliser--d85
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To