12 points par kuroneko 2023-06-20 | 1 commentaires | Partager sur WhatsApp
  • TypeScript 5.2 ajoute un nouveau mot-clé, using, qui permet de libérer explicitement un objet lorsqu’il sort de sa portée.
  • Une fonctionnalité similaire au using déjà présent notamment en C#.
    • Lorsqu’une fonction renvoie un objet, il est possible de lui associer une fonction via le symbole Symbol.dispose.
    • using permet d’appeler cette fonction.
    • Ensuite, lorsque l’objet sort de sa portée, la fonction Symbol.dispose est appelée.
  • Cette fonctionnalité repose sur la proposition de gestion explicite des ressources du TC39, qui a récemment atteint l’étape 3.
  • Avec Symbol.asyncDispose, il est possible d’associer une fonction asynchrone et d’utiliser await using pour libérer un objet de manière asynchrone.
  • Peut être utilisé dans divers contextes, comme les connexions DB, les gestionnaires de fichiers, etc.

1 commentaires

 
kuroneko 2023-06-20

Cette fonctionnalité n’est en réalité pas propre à TypeScript, mais ressemble plutôt à une sorte de polyfill basé sur une fonctionnalité proposée pour ECMAScript.
D’après une proposition du TC39, elle devrait aussi être implémentée en JavaScript.

Comme j’avais trouvé using assez pratique à l’époque où je faisais du C#, je l’accueille plutôt favorablement,
mais certains disent aussi qu’au fond, ce n’est pas juste la même chose que try ... finally.