IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)

Vous �tes nouveau sur Developpez.com ? Cr�ez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et �tre connect� pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Cr�ez-en un en quelques instants, c'est enti�rement gratuit !

Si vous disposez d�j� d'un compte et qu'il est bien activ�, connectez-vous � l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oubli� ?
Cr�er un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Cinq v�rit�s inconfortables � propos de TypeScript selon Stefan Baumgartner
Auteur de livres sur le langage de programmation

Le , par Michael Guilloux

127PARTAGES

8  0 
Cinq v�rit�s inconfortables � propos de TypeScript, selon Stefan Baumgartner
auteur de livres sur le langage de programmation

Dans un billet de blog, Stefan Baumgartner aborde cinq v�rit�s inconfortables sur le langage TypeScript. Tout d'abord, il rappelle que TypeScript n'est pas une version "corrig�e" de JavaScript, mais plut�t un sur-ensemble de ce dernier. Il ne vous �pargne donc pas JavaScript avec ses bizarreries et ses d�fauts. Malgr� son approche graduelle, TypeScript ajoute aussi de la complexit� aux projets en raison de ses nombreuses options de configuration. En outre, ce n'est pas vraiment un langage � typage s�r, en particulier lorsque des interactions avec le "monde ext�rieur" sont impliqu�es. Stefan Baumgartner affirme �galement que TypeScript existe sous une multitude de variantes implicites, chacune avec ses avantages et ses inconv�nients. Malgr� tout, il estime que TypeScript reste un langage pr�cieux pour am�liorer la productivit� et la maintenabilit� des projets, � condition de comprendre ses compromis et de l'utiliser correctement.

Stefan Baumgartner est un auteur de deux livres sur TypeScript, y compris le livre � TypeScript in 50 Lessons �. Chaque fois qu'il rencontre un nouveau groupe de d�veloppeurs, lors de ses ateliers et formations, il y a certaines r�alit�s sur TypeScript auxquelles ils sont confront�s. Ce sont ces r�alit�s qu'il a d�cid� de partager dans un billet de blog intitul� � Cinq v�rit�s inconfortables � propos de TypeScript �, ce que nous vous pr�sentons ici.

1. TypeScript ne vous �pargnera pas JavaScript

� chaque fois qu'il donne des ateliers sur TypeScript, il y a au moins une personne qui apprend TypeScript parce qu'elle a essay� JavaScript et que cela n'a pas fonctionn� pour elle. TypeScript devrait �tre meilleur, n'est-ce pas ?

Stephan Baumgartner dit avoir constat� que l'id�e fausse selon laquelle TypeScript est une version "meilleure" ou "corrig�e" de JavaScript est tr�s r�pandue. Cette id�e existe depuis les tout premiers jours o� TypeScript �tait fortement promu par des d�veloppeurs qui utilisaient g�n�ralement C#/.NET et avaient besoin d'�crire des API c�t� client �galement. C'�tait �galement la premi�re rencontre de Stefan Baumgartner avec TypeScript : quelqu'un lui a dit qu'il avait trouv� une "meilleure version". Et c'est aussi la raison pour laquelle il a initialement rejet� TypeScript.

TypeScript �tant sans aucun doute un sur-ensemble de JavaScript, M. Baumgartner rappelle que cela signifie qu'il reprend toute l'histoire, les bizarreries et les pi�ges de JavaScript. � Oui, cela vous aide � �viter les erreurs et � travailler avec un langage de programmation � typage dynamique. Cela g�n�re des erreurs lorsque quelque chose ne concorde pas. Mais en son c�ur, c'est toujours JavaScript. Si vous travaillez suffisamment longtemps avec TypeScript, vous verrez les zones jaunes transpara�tre � travers le rev�tement bleu des types statiques �. Il utilise les couleurs jaune et bleue pour faire allusion respectivement � JavaScript et TypeScript.

� Le syst�me de typage de TypeScript adopte pleinement la typage structurel - pour de bonnes raisons - et cela, combin� au fait que les types ne sont que des informations suppl�mentaires qui se superposent au code existant, peut �tre d�routant pour beaucoup de gens qui s'attendent � une transition rapide d'un langage � l'autre �, dit-il. � Si vous souhaitez vous plonger dans TypeScript, ne pensez pas que vous pouvez laisser JavaScript derri�re vous. Il vous trouvera, et il vous attrapera. �

2. TypeScript ajoute de la complexit� � vos projets

TypeScript est connu pour son approche graduelle : utilisez autant de types que vous le souhaitez, allez aussi loin que vous le voulez. TypeScript cherche �galement � abaisser continuellement la barri�re d'entr�e, en s'assurant que les personnes qui connaissent juste suffisamment de JavaScript puissent b�n�ficier des informations de typage. N�anmoins, Stefan Baumgartner affirme que TypeScript ajoute une couche de complexit� � votre projet dont vous devez �tre conscient. Et il ne parle pas seulement des types et des fonctionnalit�s avanc�es complexes comme les types conditionnels. Il parle de toutes les options de configuration, de param�tres et d'int�grations que TypeScript apporte pour �tre compatible avec absolument tout : Deno, Node, Babel, Webpack, Esbuild, de vieilles biblioth�ques de graphiques, etc. M�me avec Internet Explorer 5, dit-il pour ironiser.

� Vous avez compris l'id�e. Le compilateur TypeScript est configur� via TSConfig, un �norme fichier JSON avec de nombreuses possibilit�s pour adapter TypeScript � vos besoins. Il y a tellement d'options de configuration diff�rentes qu'il devient vraiment difficile de dire quelles r�gles sont r�ellement appliqu�es. Et une fois que vous avez surmont� cette extravagance de configuration, vous pouvez commencer � examiner tous les compromis que TypeScript fait pour vous afin d'obtenir un code s�r. TypeScript est une affaire complexe �, dit-il.


Stefan Baumgartner pr�sentant les bizarreries de TypeScript lors d'une conf�rence

3. TypeScript n'est pas vraiment un langage � typage s�r

Cela peut �tre surprenant pour beaucoup, mais Stefan Baumgartner estime TypeScript n'est pas vraiment un langage � typage s�r. La v�rification des types de TypeScript fonctionne tr�s bien dans ce que Stefan Baumgartner appelle le "monde interne des types" de votre application. Cette partie o� vous avez d�fini vos types, les op�rations sur ces types et leur flux dans tout votre programme.

� Ici, tout ce qui devrait fonctionner ensemble fonctionnera ensemble, tout ce qui ne fonctionne pas provoquera des lignes ondul�es rouges et des erreurs de compilation. Mais il y a des choses aux bords. Si vous quittez le monde interne de la s�curit� de typage et que vous avez besoin d'acc�der � des entr�es-sorties quelconques : entr�e utilisateur, acc�s aux fichiers, r�cup�ration de donn�es sur Internet. L�, TypeScript n'a aucune id�e des types en question et doit se fier � ce que vous lui dites. Vous devez faire des annotations de type, des assertions de type ou de gros contr�les de flux pour donner � TypeScript un indice de ce � quoi s'attendre. Et ces mesures sont aussi bonnes que vous. En TypeScript, vous avez la possibilit� de changer un type en quelque chose d'autre � tout moment. Vous pouvez le changer d'un type large qui autorise de nombreuses valeurs mais qui est moins sp�cifique � un type restreint qui autorise moins de valeurs mais fournit plus d'informations � tout moment, parfois sans m�me le remarquer. Et il y a des situations, notamment avec les API qui retournent "any", o� vous pouvez annoter quelque chose de compl�tement diff�rent de ce que vous obtenez en retour. �

� Et rien ne vous en prot�ge contre cela �, explique M. Baumgartner. � Non seulement cela, mais TypeScript fait quelques exceptions o� il �change la s�curit� des types contre la productivit�. Et ce sont ces sc�narios qui peuvent vraiment vous causer des probl�mes. �

4. TypeScript existe en de nombreuses variantes

Oui, pour Stefan Baumgartner, TypeScript existe en de nombreuses variantes qui ne disent pas leurs noms : vous pouvez juste faire du JavaScript avec une touche de types, ou aller � fond dans les hi�rarchies de classes et en utilisant toutes les extensions de langage comme si c'�tait en 2012. Vous pouvez �crire principalement en React et avoir besoin de l'extension TSX. Vous pouvez aussi �crire du code fonctionnel et travailler beaucoup avec des types conditionnels et des types de tuples variadiques. Ou encore, vous pouvez utiliser des d�corateurs exp�rimentaux qui fournissent des informations pour une multitude d'autres compilateurs qui s'ex�cutent par la suite. Chacun utilise TypeScript de la mani�re qui fonctionne le mieux pour lui, et son �quipe.

Stefan Baumgartner affirme que TypeScript offre tant de possibilit�s qu'il n'a jamais vu un seul projet qui ressemble � un autre. Chaque �quipe trouve quelque chose de diff�rent et utilise une vari�t� d'outils pour s'exprimer en TypeScript. Et ils viennent tous avec diff�rents fonctionnalit�s et compromis. Les enums, les classes abstraites, les types conditionnels, etc. Ils viennent tous avec des compris. Les classes abstraites, par exemple, vous aident � d�finir un comportement partag�, mais elles n'ont aucune base dans JavaScript. Et les types conditionnels n�cessitent presque toujours une documentation suppl�mentaire pour que les gens puissent comprendre ce qui a �t� fait apr�s un certain laps de temps.

Vos d�cisions d'utiliser des types ou des interfaces, des �num�rations constantes ou des �num�rations r�guli�res. Vos d�cisions d'inf�rer les types ou les annoter, etc. indiquent la variante de TypeScript que vous utilisez. Pour M. Baumgartner, c'est presque comme en C++, o� les �quipes doivent toujours d�cider d'un sous-ensemble du langage pour g�rer la complexit�. TypeScript vous demande la m�me chose.

5. TypeScript en vaut toujours la peine

Cela dit, Stefan Baumgartner estime que TypeScript en vaut totalement la peine. A condition de comprendre le langage, comprendre ses compromis et ses inconv�nients, et comprendre ce qu'il apporte � votre projet. C'est � ces conditions que vous pourrez pleinement profiter de la puissance de TypeScript en tant que syst�me de typage et langage de programmation. TypeScript devient alors un langage pr�cieux pour am�liorer la productivit� et la maintenabilit� des projets.

Source : Stefan Baumgartner

Et vous ?

Utilisez-vous TypeScript ? Que pensez-vous du langage ?
Etes-vous d'accord avec les "v�rit�s inconfortables" � propos de TypeScript ?

Voir aussi

Microsoft annonce la disponibilit� de TypeScript 5.2 Beta et pr�sente une liste rapide des nouveaut�s de TypeScript 5.2

TypeScript a 10 ans ! Joyeux anniversaire. � cette occasion, Microsoft fait le point. L'entreprise revient sur les doutes des premiers jours ainsi que sur l'�volution du langage

Le top 25 des langages de programmation les plus populaires aupr�s des DevOps : TypeScript a d�tr�n� JavaScript en tant que langage pr�f�r�, Ruby est en 3� position, d'apr�s CircleCI

Pendant que Deno, le runtime de JS et TS, gagne en maturit�, certaines entreprises tentent de l'utiliser en production, mais d'autres repartent non satisfaites � la suite des tests effectu�s
Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.

Une erreur dans cette actualit� ? Signalez-nous-la !

Avatar de Gugelhupf
Mod�rateur https://www.developpez.com
Le 26/07/2023 � 12:29
Utilisez-vous TypeScript ? Que pensez-vous du langage ?

Pour r�sumer je consid�re TypeScript comme des "annotations" pour faciliter la vie de l'�quipe et la r�ussite des projets sur le long terme.

Oui, j'utilise TypeScript (surtout en backend) o� je force l'�quipe � respecter des r�gles @typescript-eslint strictes telles que :
Code : S�lectionner tout
1
2
3
4
        "@typescript-eslint/no-explicit-any": "error",
        "@typescript-eslint/explicit-function-return-type": "error",
        "@typescript-eslint/typedef": ["error", {
            "memberVariableDeclaration": true,
            "parameter": true,
            "propertyDeclaration": true
        }],
        "@typescript-eslint/prefer-optional-chain": "error"
ces r�gles forcent la pr�cision des types au niveau des signatures de fonction/m�thode et attribut de classe. Ce forcing est l� pour des raisons �videntes de maintenance, si on ne respecte pas ces r�gles, le projet NodeJS aussi puissant soit-il devient tout simplement ing�rable.

Ne perdez pas de vue que tant que TypeScript ne fera pas partie du standard JavaScript/EcmaScript, TypeScript restera juste une surcouche qui vous produira du JavaScript en sortie. Peut-�tre que TypeScript int�grera le standard un jour, mais d'ici l� on se contentera de transpilateur tels que esbuild car il n'y a pas de support officiel de deno par les grands providers de cloud.
1  0