Ajouter un commentaire

TypeScript 4.4

Par:
fredericmazue

lun, 30/08/2021 - 14:30

Microsoft a annoncé la disponibilité de TypeScript 4.4. Outre les nouveautés décrites lors de la sortie de TypeScript en version release candidate, nous remarquons l'arrivée des blocs de code 'static' dans les classes. Il s'agit d'une fonctionnalité qui fera bientôt partir du standard ECMAScript, et qui permet d'écrire un code d'initialisation plus complexe pour les membres statiques.

Par exemple :

class Foo {
    static count = 0;

    // ceci est un bloc static
    static {
        if (someCondition()) {
            Foo.count++;
        }
    }
}

Ces blocs statiques vous permettent d'écrire une séquence d'instructions avec leur propre portée pouvant accéder aux champs privés de la classe conteneur. Cela signifie qu'il est possible d'écrire du code d'initialisation avec toutes les capacités d'écriture d'instructions, aucune fuite de variables et un accès complet aux composants internes de notre classe.

Par exemple :

class Foo {
    static #count = 0;

    get count() {
        return Foo.#count;
    }

    static {
        try {
            const lastInstances = loadLastInstances();
            Foo.#count += lastInstances.length;
        }
        catch {}
    }
}

Sans les blocs stiatic, il n'aurait pas été possible d'écrire le code ci-dessus.

A remarquer encore, avec TypeScript 4.4, des améliorations de performances lors de l'utilisation de types complexes, grâce à un nouveau mécanisme de cache des symboles internes et des améliorations de performances concernant la normalisation des noms de fichiers, qui apportent une réduction de 5 à 10% du temps de chargement des gros projets.

Pour utiliser typescript 4.4 vous pouvez l'obtenir via NuGet ou utiliser npm avec la commande suivante :

npm install typescript

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
     J  X   X      J  N   N  V     V 
J X X J NN N V V
J X J N N N V V
J J X X J J N NN V V
JJJ X X JJJ N N V