Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
March 18, 2022 06:43 pm GMT

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

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To