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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

TypeScript Discussion :

TypeScript 1.7 est disponible et apporte le support des fonctions asynchrones


Sujet :

TypeScript

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2013
    Messages
    6 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mars 2013
    Messages : 6 360
    Points : 154 795
    Points
    154 795
    Par défaut TypeScript 1.7 est disponible et apporte le support des fonctions asynchrones
    TypeScript 1.7 est disponible et apporte le support des fonctions asynchrones
    pour cibler des générateurs ES6

    Microsoft a annoncé la disponibilité de TypeScript 1.7 en marge de l’Update 1 de son outil Visual Studio 2015. Cette nouvelle version apporte le support des fonctions Async pour gérer des éléments qui ont activé le support du générateur ES6 (comme node.js à partir de sa v4). Les fonctions peuvent désormais être utilisées avec le mot clé « async » en préfixe qui désigne une fonction asynchrone. Pour arrêter l’exécution jusqu’à ce que la fonction asynchrone ait rempli sa tâche, le mot clé « await » peut être utilisé. Voici un exemple en guise d’illustration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // affichageRetarde est une 'TacheRemplie<void>'
     
    async function affichageRetarde(elements: string[]) {
        for (const element of elements) {
            await delay(200);
            console.log(element);
        }
    }
     
    async function delay(milliseconds: number) {
        return new TacheRemplie<void>(resolve => {
            setTimeout(resolve, milliseconds);
        });
    }
     
    affichageRetarde(["Bonjour", "monde", "merveilleux", "asynchrone"]).then(() => {
        console.log();
        console.log("Tous les éléments ont été affichés!");
    });
    Microsoft explique être en train de travailler sur un support du couple async / await qui ciblera d’autres éléments qui pourraient ne pas disposer du support des générateurs ES6.

    Cette mouture embarque également un nouveau type polymorphe this. Le type this peut être utilisé dans les classes et les interfaces pour représenter un type étant un sous-type du type du contenu (au lieu du type du contenu lui-même). Par exemple, considérons le module CalculatriceBasique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    export default class CalculatriceBasique {
        public constructor(protected value: number = 0) { }
     
        public currentValue(): number {
            return this.value;
        }
     
        public addition(operand: number) {
            this.value += operand;
            return this;
        }
     
        public soustraction(operand: number) {
            this.value -= operand;
            return this;
        }
     
        public multiplication(operand: number) {
            this.value *= operand;
            return this;
        }
     
        public division(operand: number) {
            this.value /= operand;
            return this;
        }
    }
    Un utilisateur peut exprimer l’opération 2 x 5 +1 comme étant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import calc from "./CalculatriceBasique";
     
    let v = new calc(2)
        .multiplication(5)
        .addition(1)
        .currentValue();
    Cependant, supposons qu’un utilisateur veuille écrire une CalculatriceScientifique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import CalculatriceBasique from "./CalculatriceBasique";
     
    export default class CalculatriceScientifique extends CalculatriceBasique {
        public constructor(value = 0) {
            super(value);
        }
     
        public carre() {
            this.value = this.value ** 2;
            return this;
        }
     
        public sin() {
            this.value = Math.sin(this.value);
            return this;
        }
    }
    Parce que TypeScript infère le type CalculatriceBasique dans chaque méthode dans CalculatriceBasique qui retourne this, le système type va ignorer le fait qu’il avait CalculatriceScientifique à chaque fois qu’il va utiliser une méthode CalculatriceBasique.

    TypeScript 1.7 a effectué un changement dans le type inféré this. Dans une classe, le type de la valeur this sera inféré au type this, et les affectations ultérieures des valeurs du type original peuvent ne pas fonctionner. Aussi, Microsoft a fourni un échantillon de code avec des solutions de contournement recommandées ainsi qu’une liste d’autres changements qui peuvent potentiellement occasionner une rupture sur GitHub.

    TypeScript 1.7 ajoute es6 à la liste des options disponibles pour le –module flag et vous permet de spécifier la sortie du module lorsque vous visez ES6. Microsoft estime que cela apporte plus de flexibilité pour viser exactement les fonctionnalités que vous désirez dans des environnements d’exécution spécifiques.

    Source : blog MSDN, problèmes avec TypeScript (GitHub)

    Et vous ?

    Utilisez-vous TypeScript ? Qu'en pensez-vous ?

    Voir aussi :

    Où en est TypeScript vis-à-vis de ECMAScript 6 ? Présentation de ce que TypeScript implémente pour le moment

    TypeScript 1.6 disponible avec un support de la syntaxe JSX qui a été enrichie de nouveaux concepts
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    juillet 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2009
    Messages : 56
    Points : 163
    Points
    163
    Par défaut
    Dart reprend les bonnes idées du C# et du Java,
    Typescript reprend le bonne idée de Dart,
    et Javascript se traine... :/

  3. #3
    Membre chevronné

    Homme Profil pro
    Développeur .NET
    Inscrit en
    juillet 2009
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : juillet 2009
    Messages : 966
    Points : 2 016
    Points
    2 016
    Par défaut
    Citation Envoyé par Stéphane le calme Voir le message
    Microsoft explique être en train de travailler sur un support du couple async / await qui ciblera d’autres éléments qui pourraient ne pas disposer du support des générateurs ES6.
    ça serrai top.

    Citation Envoyé par Stéphane le calme Voir le message
    Cette mouture embarque également un nouveau type polymorphe this. Le type this peut être utilisé dans les classes et les interfaces pour représenter un type étant un sous-type du type du contenu (au lieu du type du contenu lui-même).
    je n'avais pas encore pousser le TS assez loin pour m’apercevoir que ce n’était pas encore le cas. Bonne nouvelle.

    Citation Envoyé par Stéphane le calme Voir le message
    Utilisez-vous TypeScript ? Qu'en pensez-vous ?
    J'utilise TypeScript depuis peu, et j'en suit très satisfait.
    Que des bonnes nouvelles, le projet évolue vite et dans le bon sens.
    un jour, quelqu'un a dit quelque chose...

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    novembre 2012
    Messages
    3 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2012
    Messages : 3 299
    Points : 9 688
    Points
    9 688
    Par défaut
    Citation Envoyé par Vlozer Voir le message
    et Javascript se traine... :/
    Euh pour rappel async/await c'est dans la spec ES7, donc déjà exploitable en JavaScript avec un transpilateur. Je l'ai déjà utilisé avec Node et Babel.
    One Web to rule them all

Discussions similaires

  1. Réponses: 8
    Dernier message: 06/11/2015, 21h06
  2. Réponses: 6
    Dernier message: 06/12/2011, 15h56
  3. Réponses: 40
    Dernier message: 19/01/2011, 07h14
  4. Réponses: 21
    Dernier message: 24/12/2010, 03h02
  5. Réponses: 0
    Dernier message: 07/10/2009, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo