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 :

La version stable de TypeScript 3.7.0 est disponible


Sujet :

TypeScript

  1. #1
    Chroniqueur Actualit�s
    Avatar de Patrick Ruiz
    Homme Profil pro
    Redacteur web
    Inscrit en
    F�vrier 2017
    Messages
    2 209
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : Redacteur web
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : F�vrier 2017
    Messages : 2 209
    Par d�faut La version stable de TypeScript 3.7.0 est disponible
    Typescript 3.7.0 va prendre en charge l�op�rateur de cha�nage d�optionnels (?.)
    En s'appuyant sur le 3e draft pour JavaScript

    Supposons, dans l�exemple qui suit, que l�on veuille extraire le nom de la cit� au sein d�un enregistrement obtenu d�une API tierce :

    Code TypeScript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    const apiResult = {
      name: "Patrick elgato",
      office: {
        primary: {
          city: "Lohove",
          state: "South"
        }
      }
    }

    L�une des solutions serait alors de proc�der de la mani�re suivante :

    Code TypeScript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    const city = apiResult.office.primary.city;
    // --> "Lohove"

    L�approche est directe. N�anmoins, elle se base sur la dangereuse hypoth�se que l�API renverra toujours la r�ponse sous la m�me forme lors de l�ex�cution. En effet, il suffit que l�API renvoie un profil utilisateur duquel la sous-structure office est manquante pour que des probl�mes surviennent . Illustration avec le bout de code qui suit :

    Code TypeScript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    const apiResult = {
      name: "Patrick elgato"
    }const city = apiResult.office.primary.city;
    // --> Uncaught TypeError: Cannot read property 'primary' of null

    De fa�on globale, le probl�me se pose avec les API qui ne d�voilent pas tous les types de r�ponses possibles. Une bonne approche � la r�solution du probl�me consiste alors � consid�rer les propri�t�s au sein de ces structures comme optionnelles. C�est l� qu�intervient l�op�rateur dit de cha�nage d�optionnels ( ?.) dont le fonctionnement est r�sum� ci-dessous :

    /
    Code TypeScript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    /  if `a` is `undefined` or `null`:
    //    return `undefined`
    //  else: 
    //    return `a.b`
    a?.b;// The optional chaining operator is equivalent to:
    (a == null) ? undefined : a.b;

    De fa�on bross�e, l�op�rateur de cha�nage d�optionnels permet de parcourir des structures similaires � des arbres de fa�on �l�gante : si l�une des propri�t�s interm�diaires est null ou undefined, la cha�ne enti�re est alors �valu�e comme undefined. Application � l�exemple de la tentative d�extraction du nom de la cit� au sein de l�enregistrement obtenu d�une API tierce :

    Code TypeScript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    const city = apiResult?.office?.primary?.city;
    // --> string | undefined

    Les d�veloppeurs habitu�s de langages de programmation comme C# de Microsoft ou Swift d�Apple connaissent cet op�rateur puisque celui-ci est pris en charge par ces langages. � contrario, sa prise en charge continue de se faire attendre sous TypeScript, mais semble-t-il, plus pour longtemps d�apr�s ce qui ressort des derniers d�veloppements.

    En effet, le contenu de discussions en cours sur le GitHub de Microsoft laisse filtrer que TypeScript 3.7.0 est pressenti pour offrir la prise en charge de l�op�rateur de cha�nage d�optionnels. TypeScript 3.6.0 est disponible en b�ta depuis peu et la version finale est pr�vue pour la fin du mois en cours. TypeScript 3.7.0 devrait �tre disponible au mois d�octobre si l�on prend en compte le fait que de nouvelles versions du langage de programmation libre et open source sortent approximativement tous les deux mois.

    La d�cision de l��quipe TypeScript fait suite � la publication du troisi�me brouillon ECMAscript relatif � la prise en charge de l�op�rateur de cha�nage d�optionnels. Ce dernier permet grosso modo d�entrevoir les axes retenus du c�t� de Microsoft. La fen�tre de code dans la suite dresse une liste de cas de figures de base auxquels les d�veloppeurs pourront faire face sous TypeScript 3.7.0 :

    Code TypeScript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    a?.b                 // undefined si `a` est null/undefined, sinon `a.b`.
    a == null ? undefined : a.b
     
    a?.[x]                 // undefined si `a`est null/undefined, sinon `a[x]`.
    a == null ? undefined : a[x]
     
    a?.b()                        // undefined si `a` est null/undefined
    a == null ? undefined : a.b() // génère une erreur de type si `a.b` n’est pas une fonction
                                  // sinon, évaluation de `a.b()`
     
    a?.()                        // undefined si `a` est null/undefined
    a == null ? undefined : a()  // génère une erreur de type si `a` n’est ni null/undefined, ni une fonction
                                 // sinon appelle la fonction `a`

    Le draft laisse �galement filtrer que TypeScript 3.7.0 arrive avec l�op�rateur ?? (nullish coalescing) compl�mentaire de celui de cha�nage d�optionnels. Illustration avec le bout de code dans la suite :

    Code TypeScript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    // falls back to a default value when response.settings is missing or nullish
    // (response.settings == null) or when response.settings.animationDuration is missing
    // or nullish (response.settings.animationDuration == null)
    const animationDuration = response.settings?.animationDuration ?? 300;

    Nom : 2.png
Affichages : 19724
Taille : 15,1 Ko

    La publication d�un troisi�me brouillon ECMAscript relatif � la prise en charge de l�op�rateur de cha�nage d�optionnels est le signe que la fonctionnalit� se rapproche des d�veloppeurs qui font usage de JavaScript �galement. C�est d�sormais la version finale de la sp�cification qui est attendue. En attendant, Microsoft va prendre les devants. La man�uvre pourrait, avec les retours d�exp�rience des d�veloppeurs TypeScript, influer sur les choix finaux du c�t� de JavaScript.

    Sources : ticket TypeScript, tc39

    Et vous ?

    Qu�en pensez-vous ?
    Comment accueillez-vous la disponibilit� future de cet op�rateur pour les langages de script TyepScript et JavaScript ?
    Entrevoyez-vous des inconv�nients � l�introduction de cette fonctionnalit� ? Si oui, lesquels ?

    Voir aussi :

    Apr�s avoir r��crit Angular en TypeScript, Google approuve le surensemble JavaScript de Microsoft pour ses d�veloppements internes
    Google s'oriente vers TypeScript et voici pourquoi, selon Evan Martin, un ing�nieur de la firme qui travaille sur le langage
    TypeScript 3.1 est disponible, cette version s'accompagne des redirections de versions ainsi que des types de tableau et de tuple mappables
    Microsoft annonce la disponibilit� de TypeScript 3.3 qui apporte une meilleure gestion des projets composites introduits par TypeScript 3.0
    La RC de TypeScript 3.4 est disponible et apporte une nouvelle syntaxe pour ReadonlyArray ainsi que la v�rification de type pour globalThis
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et R�digez des actualit�s

  2. #2
    Membre �clair� Avatar de dfiad77pro
    Homme Profil pro
    Responsable Architecture logicielle
    Inscrit en
    D�cembre 2008
    Messages
    544
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Responsable Architecture logicielle
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 544
    Par d�faut Une fonctionnalit�e � prendre avec des pincettes
    J'aime bien cela venant de C#.

    Cela dit attention � ce genre de code. Qu'on voit trop souvent :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    personne?.adresse?.rue ='toto';
    personne?.adresse?.cpost='69000';
    personne?.adresse?.ville='=Lyon';
    Dans ce cas il vaut mieux utiliser une seule condition pour �viter de r�p�ter le test �

  3. #3
    Expert confirm�
    Avatar de Marco46
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2005
    Messages
    4 419
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 4 419
    Par d�faut
    Ou sinon utiliser lodash.

  4. #4
    Membre extr�mement actif
    Avatar de Sodium
    Femme Profil pro
    D�veloppeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Billets dans le blog
    1
    Par d�faut
    Le moins de d�pendances � des librairies externes devrait toujours �tre un objectif principal de d�veloppeur.

    � part �a je ne connaissais pas cet op�rateur dans les autres langages mais �a me semble tr�s int�ressant.

  5. #5
    Expert confirm�
    Avatar de Marco46
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2005
    Messages
    4 419
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 4 419
    Par d�faut
    Oui �videmment c'est toujours mieux d'�viter des d�pendances mais l� c'est quand m�me lodash, c'�tait juste pour souligner que �a existe depuis longtemps avec une lib qui peut �tre consid�r�e comme faisant partie de l'API standard.

    Bref.

  6. #6
    Chroniqueur Actualit�s

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : B�nin

    Informations professionnelles :
    Activit� : Dirigeant
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Par d�faut La version b�ta de TypeScript 3.7.0 est disponible
    La version b�ta de TypeScript 3.7.0 est disponible
    avec la prise en charge de l'op�rateur de cha�nage d'optionnels (?.) et l�op�rateur � ?? �

    TypeScript est un langage de programmation libre et open source et un surensemble de JavaScript d�velopp� par Microsoft qui a pour but d'am�liorer et de s�curiser la production de code JavaScript. Microsoft a annonc� ce mardi la disponibilit� de la version b�ta de TypeScript 3.7.0 (TypeScript 3.7.0b). Cette version b�ta inclut certaines des fonctionnalit�s les plus demand�es par la communaut� derri�re le langage, notamment l'op�rateur de cha�nage d'optionnels (?.) � ?. �, l�op�rateur de coalescence null � ?? �, ainsi que les fonctions d�assertion.

    Microsoft a publi� TypeScript 3.6.0 en ao�t dernier avec un bon nombre de nouvelles fonctionnalit�s et am�liorations pour le langage. TypeScript 3.6 a introduit une v�rification plus stricte pour les it�rateurs et pour les fonctions du g�n�rateur. Dans les versions pr�c�dentes, les utilisateurs de g�n�rateurs n'avaient aucun moyen de diff�rencier si une valeur �tait c�d�e ou renvoy�e par un g�n�rateur. Microsoft a aussi apport� dans TypeScript 3.6.0 une utilisation plus am�lior�e des tableaux et une am�lioration de l�UX en retouchant la classe Promise.

    Nom : z1.png
Affichages : 7834
Taille : 1,8 Ko

    Pour cette fois, dans TypeScript 3.7.0b, l��quipe de d�veloppement du langage a �galement pr�sent� plusieurs nouvelles fonctionnalit�s qui vont certainement appara�tre dans la version stable apr�s les corrections de bogues et certaines am�liorations. Ainsi, TypeScript 3.7.0b annonce l�arriv�e dans la version stable de TypeScript 3.7.0 des fonctionnalit�s telles que l�op�rateur de coalescence null � ?? �, l'op�rateur de cha�nage d'optionnels (?.) � ?. �, les fonctions d�assertion et de nombreuses autres fonctionnalit�s. Plus en d�tail, nous avons :

    La Coalescence null (Nullish Coalescing)

    D�apr�s l��quipe de d�veloppement de TypeScript, l'op�rateur de coalescence null est une fonctionnalit� ECMAScript � venir qui va de pair avec le cha�nage optionnel. Vous pouvez penser � l�op�rateur de coalescence null (??) comme un moyen de revenir � une valeur par d�faut lorsque vous traitez avec null ou undefined. Lorsque l�on �crit un code comme : let x = foo ?? bar(); par exemple, c'est une nouvelle fa�on de dire que la valeur foo sera utilis�e quand elle est existe, mais quand elle est nulle ou non d�finie, la valeur de bar() sera retourn�e.

    En effet, l'op�rateur de coalescence null est un op�rateur binaire qui fait partie de la syntaxe d'une expression conditionnelle de base dans plusieurs langages de programmation, dont C#, Perl � partir de la version 5.10, Swift, etc. Si son comportement varie selon l'implantation, l'op�rateur de coalescence null rend g�n�ralement le r�sultat du premier op�rande � gauche si celui-ci existe et n'est pas nul, sinon renvoie le deuxi�me op�rateur. Ce comportement permet de d�finir une valeur par d�faut pour les cas o� une valeur plus sp�cifique n'est pas disponible.

    De m�me, l'op�rateur de coalescence null (??) a �t� �galement ajout� dans le langage de programmation PHP � partir de sa version 7.0.0, publi�e en d�cembre 2015, en tant que sucre syntaxique pour le cas courant de besoin d'utiliser un ternaire en conjonction avec isset(). Il retourne son premier op�rande s'il existe et n'est pas nul ; sinon, il retourne son deuxi�me op�rande. Selon l��quipe de d�veloppement de TypeScript, l'op�rateur ?? peut remplacer l'utilisation de || lorsque vous essayez d'utiliser une valeur par d�faut.

    l'op�rateur de cha�nage d'optionnels (?.)

    Une autre fonctionnalit� importante de cette version est le cha�nage optionnel. Le cha�nage optionnel vous permet d'�crire du code o� vous pourrez imm�diatement arr�ter d'ex�cuter certaines expressions si vous rencontrez une valeur null ou undefined. Cette fonctionnalit� est disponible avec l'op�rateur de cha�nage d'optionnels (?.). En fait, l'op�rateur de cha�nage d'optionnels (?.) permet de parcourir des structures similaires � des arbres de fa�on �l�gante : si l�une des propri�t�s interm�diaires est null ou undefined, la cha�ne enti�re est alors �valu�e comme undefined.

    Les d�veloppeurs qui sont habitu�s aux langages de programmation comme le C# de Microsoft ou le langage Swift d�Apple connaissent cet op�rateur puisque celui-ci est pris en charge par ces langages. � contrario, sa prise en charge continuait � se faire attendre sous TypeScript, mais il est clair d�sormais qu'elle ne le restera plus pour longtemps et appara�tra certainement dans TypeScript 3.7.0. Microsoft travaille sur la prise en charge de cet op�rateur dans la version stable TypeScript 3.7.0 qui sera livr�e dans les prochaines semaines.

    Les fonctions d�assertion (Assertion functions)

    Selon l��quipe de d�veloppement, il y a un ensemble sp�cifique de fonctions qui lancent une erreur si quelque chose d'inattendu se produit. C'est ce qu'on appelle les fonctions d'assertion. � titre d'exemple, Node.js a une fonction d�di�e pour cela qui est appel�e assert(). Les assertions en JavaScript sont souvent utilis�es pour �viter que des types incorrects ne soient transmis. Ces fonctions existent �galement dans d�autres langages de scripts comme le PHP. Les fonctions d'assertion sont g�n�ralement utilis�es dans le contexte d'une �tape d�cisionnelle plut�t que comme �l�ment d'action de la fonction.

    Une meilleure prise en charge des fonctions never-Returning

    Selon Microsoft, dans le cadre du travail concernant les fonctions d'assertion, TypeScript avait besoin d'encoder plus d'informations sur l'endroit et les fonctions appel�es. TypeScript avait introduit un type never, qui indique les valeurs qui ne se produiront jamais. Le type never est utilis� lorsque vous �tes s�r que quelque chose ne se produira jamais. Par exemple, vous �crivez une fonction qui ne reviendra pas � son point final ou qui l�ve toujours une exception. Le type void peut avoir undefined ou null comme valeur, mais never ne peut jamais avoir de valeur. TypeScript 3.7.0 am�liore l'utilisation de ces fonctions.

    Les alias de type r�cursif (Recursive Type Aliases)

    Les alias de types ont toujours eu une limite quant � la mani�re dont ils pouvaient �tre r�f�renc�s � de mani�re r�cursive �. La raison en est que toute utilisation d'un alias de type doit pouvoir se substituer � celle de tout autre alias. Actuellement, les interfaces peuvent �tre r�cursives, mais leur expressivit� est limit�e, ce qui n'est pas le cas des alias de type. Cela signifie qu'en ce moment, vous devez combiner les deux : d�finir un alias de type, et extraire les parties r�cursives du type dans les interfaces. �a marche, mais cela semble d�sordonn�.

    En effet, les interfaces suppl�mentaires ne sont l� que parce qu'elles sont n�cessaires pour contourner la limitation de r�cursivit�. Selon l��quipe de d�veloppement, TypeScript 3.7.0b r�sout ce probl�me avec l�ajout des alias de type r�cursif. La note de version de TypeScript 3.7.0b en dit plus � ce sujet.

    L�option de formatage du point-virgule

    Selon l��quipe de d�veloppement du langage, le formateur int�gr� de TypeScript prend d�sormais en charge l'insertion et la suppression de points-virgules aux emplacements o� un point-virgule final est facultatif en raison des r�gles d'insertion automatiques de point-virgule (ASI) de JavaScript. Le param�tre est maintenant disponible dans Visual Studio Code Insiders et le sera dans Visual Studio 16.4 Preview 2 dans le menu Outils -> Options. Le choix d'une valeur entre �insert� et �remove� affecte �galement le format des importations automatiques, des types extraits et autres codes g�n�r�s fournis par les services TypeScript.

    Si vous laissez le param�tre sur sa valeur par d�faut �ignore�, le code g�n�r� correspond � la pr�f�rence de point-virgule d�tect�e dans le fichier en cours. Par ailleurs, il existe �galement d�autres fonctionnalit�s et am�liorations pr�sent�es par Microsoft dans cette version b�ta de TypeScript 3.7.0. On peut citer : les contr�les de fonctions non appel�es, les changements sur le DOM, etc. La version stable de TypeScript 3.7.0 sera publi�e vers le d�but du mois de novembre. Toutefois, une release candidate (RC) sera disponible quelques semaines auparavant.

    Source : Microsoft

    Et vous ?

    Que pensez-vous des nouvelles fonctionnalit�s apport�es dans la version b�ta de TypeScript 3.7.0 ?

    Voir aussi

    TypeScript 3.6 est disponible et apporte le support de import.meta dans SystemJS et des API qui prennent en charge --build et --incremental

    PHP 7.0.0 officiellement disponible

    Typescript 3.7.0 va prendre en charge l'op�rateur de cha�nage d'optionnels (?.), en s'appuyant sur le 3e draft pour JavaScript
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et R�digez des actualit�s

  7. #7
    Chroniqueur Actualit�s

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : B�nin

    Informations professionnelles :
    Activit� : Dirigeant
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Par d�faut La version stable de TypeScript 3.7.0 est disponible
    La version stable de TypeScript 3.7.0 est disponible
    et apporte diverses fonctionnalit�s et quelques am�liorations au langage

    Microsoft a publi� ce mardi la version stable de TypeScript 3.7.0. Comme la version b�ta publi�e en octobre dernier, TypeScript 3.7.0 apporte diverses nouvelles fonctionnalit�s et quelques am�liorations au langage, notamment l�op�rateur de coalescence null � ?? �, l'op�rateur de cha�nage d'optionnels � ?. �, etc., et une meilleure prise en charge des fonctions never-Returning. Cette nouvelle version de TypeScript apporte �galement d�autres fonctionnalit�s telles que les fonctions d�assertions et les alias de types r�cursifs.

    TypeScript est un langage de programmation libre et open source et un surensemble de JavaScript d�velopp� par Microsoft qui a pour but d'am�liorer et de s�curiser la production de code JavaScript. TypeScript 3.6.0 est sorti en ao�t avec de nouvelles fonctionnalit�s et am�liorations pour le langage. TypeScript 3.6.0 a introduit une v�rification plus stricte pour les it�rateurs et pour les fonctions du g�n�rateur. Dans les versions pr�c�dentes, les utilisateurs de g�n�rateurs ne pouvaient pas diff�rencier si une valeur �tait c�d�e ou renvoy�e par un g�n�rateur.

    Microsoft a aussi apport� dans TypeScript 3.6.0 une utilisation plus am�lior�e des tableaux et une am�lioration de l�UX en retouchant la classe Promise. Apr�s la b�ta de TypeScript 3.7.0 publi� au d�but du mois pass�, Microsoft annonce � pr�sent la disponibilit� de la version stable. Voici de quoi il s�agit dans TypeScript 3.7.0 :

    l'op�rateur de cha�nage d'optionnels (?.)

    Une autre fonctionnalit� importante de cette version est le cha�nage optionnel. Le cha�nage optionnel vous permet d'�crire du code o� vous pourrez imm�diatement arr�ter d'ex�cuter certaines expressions si vous rencontrez une valeur null ou undefined. La fonctionnalit� est disponible avec l'op�rateur de cha�nage d'optionnels (?.). En fait, l'op�rateur de cha�nage d'optionnels (?.) permet de parcourir des structures similaires � des arbres de fa�on �l�gante : si l�une des propri�t�s interm�diaires est null ou undefined, la cha�ne enti�re est alors �valu�e comme undefined.

    Les d�veloppeurs qui sont habitu�s aux langages de programmation comme le C# de Microsoft ou le langage Swift d�Apple connaissent cet op�rateur puisque celui-ci est pris en charge par ces langages. � contrario, sa prise en charge continuait � se faire attendre sous TypeScript, mais il est clair d�sormais qu'elle ne le restera plus pour longtemps et appara�tra certainement dans TypeScript 3.7.0. Microsoft travaille sur la prise en charge de cet op�rateur dans la version stable TypeScript 3.7.0 qui sera livr�e dans les prochaines semaines.

    Nom : typescriptfeature.png
Affichages : 4833
Taille : 22,8 Ko

    La coalescence null

    D�apr�s l��quipe de d�veloppement de TypeScript, l'op�rateur de coalescence null est une fonctionnalit� ECMAScript � venir qui va de pair avec le cha�nage optionnel. Vous pouvez penser � l�op�rateur de coalescence null (??) comme un moyen de revenir � une valeur par d�faut lorsque vous traitez avec null ou undefined. Lorsque l�on �crit un code comme : let x = foo ?? bar(); par exemple, c'est une nouvelle fa�on de dire que la valeur foo sera utilis�e quand elle est existe, mais quand elle est nulle ou non d�finie, la valeur de bar() sera retourn�e.

    En effet, l'op�rateur de coalescence null est un op�rateur binaire qui fait partie de la syntaxe d'une expression conditionnelle de base dans plusieurs langages de programmation, dont C#, Perl � partir de la version 5.10, Swift, etc. Si son comportement varie selon l'implantation, l'op�rateur de coalescence null rend g�n�ralement le r�sultat du premier op�rande � gauche si celui-ci existe et n'est pas nul, sinon renvoie le deuxi�me op�rateur. Ce comportement permet de d�finir une valeur par d�faut pour les cas o� une valeur plus sp�cifique n'est pas disponible.

    De m�me, l'op�rateur de coalescence null (??) a �t� �galement ajout� dans le langage de programmation PHP � partir de sa version 7.0.0, publi�e en d�cembre 2015, en tant que sucre syntaxique pour le cas courant de besoin d'utiliser un ternaire en conjonction avec isset(). Il retourne son premier op�rande s'il existe et n'est pas nul ; sinon, il retourne son deuxi�me op�rande. Selon l��quipe de d�veloppement de TypeScript, l'op�rateur ?? peut remplacer l'utilisation de || lorsque vous essayez d'utiliser une valeur par d�faut.

    Les fonctions d�assertion

    Selon l��quipe de d�veloppement, il y a un ensemble sp�cifique de fonctions qui lancent une erreur si quelque chose d'inattendu se produit. C'est ce qu'on appelle les fonctions d'assertion. � titre d'exemple, Node.js a une fonction d�di�e pour cela qui est appel�e assert(). Les assertions en JavaScript sont souvent utilis�es pour �viter que des types incorrects ne soient transmis. Ces fonctions existent �galement dans d�autres langages de scripts comme le PHP. Les fonctions d'assertion sont g�n�ralement utilis�es dans le contexte d'une �tape d�cisionnelle plut�t que comme �l�ment d'action de la fonction.
    Une meilleure prise en charge des fonctions never-Returning

    Selon Microsoft, dans le cadre du travail concernant les fonctions d'assertion, TypeScript avait besoin d'encoder plus d'informations sur l'endroit et les fonctions appel�es. TypeScript avait introduit un type never, qui indique les valeurs qui ne se produiront jamais. Le type never est utilis� lorsque vous �tes s�r que quelque chose ne se produira jamais. Par exemple, vous �crivez une fonction qui ne reviendra pas � son point final ou qui l�ve toujours une exception. Le type void peut avoir undefined ou null comme valeur, mais never ne peut jamais avoir de valeur. TypeScript 3.7.0 am�liore l'utilisation de ces fonctions.

    Les alias de type r�cursif

    Les alias de types ont toujours eu une limite quant � la mani�re dont ils pouvaient �tre r�f�renc�s � de mani�re r�cursive �. La raison en est que toute utilisation d'un alias de type doit pouvoir se substituer � celle de tout autre alias. Actuellement, les interfaces peuvent �tre r�cursives, mais leur expressivit� est limit�e, ce qui n'est pas le cas des alias de type. Cela signifie qu'en ce moment, vous devez combiner les deux : d�finir un alias de type, et extraire les parties r�cursives du type dans les interfaces. �a marche, mais cela semble d�sordonn�.

    En effet, les interfaces suppl�mentaires ne sont l� que parce qu'elles sont n�cessaires pour contourner la limitation de r�cursivit�. Selon l��quipe de d�veloppement, TypeScript 3.7.0b r�sout ce probl�me avec l�ajout des alias de type r�cursif. La note de version de TypeScript 3.7.0b en dit plus � ce sujet. Pour activer les mod�les d'alias de type r�cursif d�crits ci-dessus, la propri�t� typeArguments a �t� supprim�e de l'interface TypeReference. Les utilisateurs devraient plut�t utiliser la fonction getTypeArguments sur les instances TypeChecker.

    �dition sans construction avec des r�f�rences de projet

    Selon l'�quipe de d�veloppement, les r�f�rences de projets de TypeScript fournissent un moyen facile de d�composer les bases de code pour donner des compilations plus rapides. Cependant, �diter un projet dont les d�pendances n'avaient pas �t� construites (ou dont la sortie n'�tait pas � jour) signifiait que l'exp�rience d'�dition ne fonctionnerait pas bien. � partir de TypeScript 3.7.0, lors de l'ouverture d'un projet avec des d�pendances, TypeScript utilisera automatiquement les fichiers source.ts/.tsx � la place.

    Cela signifie que les projets utilisant des r�f�rences de projet b�n�ficieront d�sormais d'une meilleure exp�rience d'�dition o� les op�rations s�mantiques sont � jour et juste fonctionnelles. Si vous le souhaitez, vous pouvez d�sactiver ce comportement avec l'option du compilateur disableSourceOfProjectReferenceRedirect, ce qui peut �tre appropri� lorsque vous travaillez sur de tr�s grands projets o� ce changement peut avoir un impact sur les performances d'�dition.

    L�option de formatage du point-virgule

    Selon l��quipe de d�veloppement du langage, le formateur int�gr� de TypeScript prend d�sormais en charge l'insertion et la suppression de points-virgules aux emplacements o� un point-virgule final est facultatif en raison des r�gles d'insertion automatiques de point-virgule (ASI) de JavaScript. Le param�tre est maintenant disponible dans Visual Studio Code Insiders et le sera dans Visual Studio 16.4 Preview 2 dans le menu Outils -> Options. Le choix d'une valeur entre �insert� et �remove� affecte �galement le format des importations automatiques, des types extraits et autres codes g�n�r�s fournis par les services TypeScript.

    Si vous laissez le param�tre sur sa valeur par d�faut �ignore�, le code g�n�r� correspond � la pr�f�rence de point-virgule d�tect�e dans le fichier en cours. Par ailleurs, il existe �galement d�autres fonctionnalit�s et am�liorations pr�sent�es par Microsoft dans cette version de TypeScript 3.7.0. On peut citer : les contr�les de fonctions non appel�es, les changements sur le DOM, etc. Alors quelle est la prochaine �tape ? Parall�lement � la publication de TypeScript 3.7.0, Microsoft a aussi lanc� les travaux portant sur la version 3.8.0 du langage.

    � Nous avons r�cemment publi� le plan d'it�ration pour TypeScript 3.8, et nous mettrons � jour notre feuille de route � mesure que nous aurons plus de d�tails. Nous voulons que nos utilisateurs ressentent vraiment de la joie quand ils �crivent du code, et nous esp�rons que TypeScript 3.7 fait exactement cela �, a �crit Daniel Rosenwasser, le gestionnaire de programme TypeScript chez Microsoft.

    Source : Microsoft

    Et vous ?

    Qu'en pensez-vous ?
    Comment appr�ciez-vous la version 3.7 de TypeScript ?

    Voir aussi

    La version b�ta de TypeScript 3.7.0 est disponible avec la prise en charge de l'op�rateur de cha�nage d'optionnels (?.) et l'op�rateur (??)

    Typescript 3.7.0 va prendre en charge l'op�rateur de cha�nage d'optionnels (?.), en s'appuyant sur le 3e draft pour JavaScript

    TypeScript 3.6 est disponible et apporte le support de import.meta dans SystemJS et des API qui prennent en charge --build et --incremental

    PHP 7.0.0 officiellement disponible
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et R�digez des actualit�s

  8. #8
    Mod�rateur
    Avatar de grunk
    Homme Profil pro
    Lead d�v - Architecte
    Inscrit en
    Ao�t 2003
    Messages
    6 693
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : Lead d�v - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 6 693
    Par d�faut
    Quel est l'int�r�t de "??" par rapport � || ?

    On est bien d'accord que ces 2 solutions sont identiques ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 8
    Par d�faut
    L'int�r�t de ?? au lieu de || est de diff�renci� le null du false :

    foo || bar ne permet pas de savoir si foo vaut false ou null

    foo ?? bar indique que l'on veut bar que si et seulement si foo est null.

  10. #10
    Membre actif Avatar de goldbergg
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2014
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Vend�e (Pays de la Loire)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 125
    Par d�faut
    Sur le playground https://www.typescriptlang.org/

    Ce code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    var a: number = 0;
    var b = a ?? 1;
    var c = a || 1;
    console.log(a, b, c);
    est convertie en :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    "use strict";
    var a = 0;
    var b = (a !== null && a !== void 0 ? a : 1);
    var c = a || 1;
    console.log(a, b, c);//0 0 1
    Le ?? est plus sur que le ||

  11. #11
    Nouveau candidat au Club
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2018
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Par d�faut
    @goldbergg

    Il est plus sur dans le sens ou il interpr�te pas la premi�re valeur comme une "falsy/truthy".
    D'ou la diff�rence dans ton exemple entre b et c.

    Edit: J'avais mal lu ton message, j'avais cru � une question ...

  12. #12
    Candidat au Club
    Homme Profil pro
    D�veloppeur multim�dia
    Inscrit en
    Juin 2016
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur multim�dia
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juin 2016
    Messages : 3
    Par d�faut
    Aaah ! Super pour le ??, je l'attendais celui l� !

Discussions similaires

  1. commande DOS pour prendre une partie d'un mot
    Par sofiane1111 dans le forum Scripts/Batch
    R�ponses: 1
    Dernier message: 21/09/2007, 10h59
  2. comment configurer tomcat pour prendre une racine determin�e
    Par diamonds dans le forum Tomcat et TomEE
    R�ponses: 12
    Dernier message: 26/03/2007, 21h42
  3. Formule pour prendre certains digits d'un Champs.
    Par jboumaaz dans le forum Formules
    R�ponses: 6
    Dernier message: 17/01/2007, 15h37
  4. Quelle URL dois-je entrer pour prendre Developper.com en RSS ?
    Par koKoTis dans le forum Mode d'emploi & aide aux nouveaux
    R�ponses: 19
    Dernier message: 03/09/2006, 13h24

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