Developpez.com - Rubrique TypeScript

Le Club des Développeurs et IT Pro

Apprendre les différentes fonctionnalités de TypeScript

Un tutoriel de Nicolas Legrand

Le 2020-03-10 03:23:29, par Malick, Community Manager
Chers membres du club,

J'ai le plaisir de vous présenter la troisième partie du tutoriel de Nicolas Legrand :

Apprendre les différentes fonctionnalités de TypeScript
Le cycle Barista utilise le langage TypeScript, toutefois jusqu’ici nous n’avons que très peu utilisé ce langage à bon escient. En effet, nous avons codé comme si nous étions sous JavaScript, il est temps que cela cesse*!
Cependant, il est probable que vous ne soyez pas encore à l’aise avec TypeScript. Pourquoi l’utiliser*? Quels avantages apporte-t-il*? Comment l’utiliser*? Vous aurez bientôt toutes les réponses à ces questions.Lire la suite...

Bonne lecture

Retrouvez les meilleurs cours et tutoriels pour apprendre TypeScript.
  Discussion forum
17 commentaires
  • atlanthot
    Membre éclairé
    Envoyé par Sodium
    Alors déjà il faudrait te décider : est-ce que tu fais un tuto pour apprendre les bases du TypeScript, de la POO ou sur la création d'un moteur de jeu vidéo ?

    Les trois à la fois ça n'a aucun intérêt, ce ne sont pas les ressources qui manquent à ce sujet. Tu en es au troisième tutorial et l'on a encore rien vu de concret concernant le titre de l'article.
    Comme précisé au tout début, cette série de tutoriels reprend et remet au "goût du jour" le travail que j'ai effectué il y a quelques années ici -> https://javascript.developpez.com/tu...hage-2d-html5/, je t'invite à aller y jeter un œil afin de te rendre compte que tout est bien préparé à l'avance et que cela s'inscrit dans un schéma logique d'apprentissage.

    De plus, Barista est quelque chose que je veux mettre en place sur la longueur, le but de ce moteur n'est pas vraiment de finir en production, il existe des ressources bien plus performantes que celles à laquelle nous allons aboutir in fine. Le but premier de barista est de découvrir les arcanes de la conception d'un moteur 2d, et au passage, j'en profite pour faire étudier à ceux qui en ont besoin:

    - Les bases de Typescript
    - Les tests unitaires (ça arrive dès le prochain article)
    - Les bases de la programmation graphique avec canvas (que nous avons déjà entamé).

    Note bien également que je pars du principe que mes lecteurs / lectrices, n'ont pas forcément les bases nécessaires dans tel ou tel domaine,
    je dois donc m'assurer qu'ils aient au moins une ressource qui leur permette de suivre. Toutefois je peux comprendre le côté "frustrant" de la chose,
    pour l'instant, le moteur 2d n'a pas vraiment encore pointé le bout de son nez et c'est la promesse de ce cycle d'apprentissage.

    J'essaie d'avancer à mon rythme, produire du contenu, je n'en vis pas, c'est un loisir, et pour l'instant je ne compte pas m'imposer un rythme qui transformera
    cela en travail à temps plein (j'ai déjà mon job ).

    Après, je ne suis pas contre les critiques constructives, selon toi, comment aurais-je du présenter la chose ?
  • atlanthot
    Membre éclairé
    Envoyé par Sodium
    À quoi bon faire un tuto en TypeScript si c'est pour faire de la programmation fonctionnelle de base ? C'est juste rajouter une couche de complexité pour rien.
    C'est parce que la rigueur de Typescript nous sera très utile dès la prochaine partie.
    Nous commencerons à coder en orienté objet, et le fait de pouvoir typer les données de façon explicite est un très bon moyen
    de visualiser ce qui se passe (et au passage, ça sécurise pas mal le développement).

    J'espère avoir répondu à ta question
  • atlanthot
    Membre éclairé
    Merci beaucoup, ravi de partager mes articles avec vous
  • Malick
    Community Manager
    Bonjour,

    Envoyé par Sodium
    Alors déjà il faudrait te décider : est-ce que tu fais un tuto pour apprendre les bases du TypeScript, de la POO ou sur la création d'un moteur de jeu vidéo ?

    Les trois à la fois ça n'a aucun intérêt, ce ne sont pas les ressources qui manquent à ce sujet. Tu en es au troisième tutorial et l'on a encore rien vu de concret concernant le titre de l'article.
    @Sodium : je pense que la réponse à votre question est fournie par l'auteur dans son post précédent et particulièrement cette partie :

    Envoyé par atlanthot
    C'est parce que la rigueur de Typescript nous sera très utile dès la prochaine partie.
    Nous commencerons à coder en orienté objet, et le fait de pouvoir typer les données de façon explicite est un très bon moyen
    de visualiser ce qui se passe.
    Cela dit, même si les ressources existent, c'est toujours un plus et bénéfique, car les approches peuvent être diverses selon l'auteur.

    Si également vous avez envie de contribuer utilement sur le site au même titre que les bénévoles qui font des efforts pour le bien de la communauté, c'hésitez pas à nous le faire savoir.

    Merci
  • Malick
    Community Manager
    Salut,

    Envoyé par atlanthot
    Après, je ne suis pas contre les critiques constructives, selon toi, comment aurais-je du présenter la chose ?
    Si Sodium souhaite participer aux relectures techniques avant publication, ce n'est pas dans ce fil que cela se fera. Cela dit, il peut me contacter par MP et je lui donnerai les accès nécessaires aux forums dédiés pour qu'il puisse y participer.

    Merci
  • atlanthot
    Membre éclairé
    Bonjour,

    En effet, ce travail est bien le mien, mon pseudo sur developpez est juste très vieux et date de bien avant la création de Moocaccino .

    Ce n'est en aucun cas la faute de developpez si la partie sur le chargement de texture est occultée, j'ai mis la chaîne en pause pendant un an et n'ait repris mon activité dessus que récemment. Ils n'ont jamais eu la version "clean" de l'article en question.

    Je compte reprendre le cycle barista à moyen terme.
    Aujourd'hui, je suis sur un cycle de livecoding vidéoludique, ce qui me permet de prendre mes marques et mon rythme.

    Merci en tout cas d'avoir notifié le fait que ce travail m'appartient, mais je vous rassure, j'en suis bien l'auteur.
  • Fab le Fou
    Membre régulier
    Bonjour et merci pour ce tuto sur TypeScript.

    J'ai commencé à l'utiliser avec Angular et je souhaite en savoir plus.
    Je profite de ce message pour signaler quelques erreurs.

    Pour installer TypeScript avec npm, il ne faut pas utiliser de majuscules, sinon npm ne trouve rien :
    code E404
    npm ERR! 404 Not Found - GET https://registry.npmjs.org/TypeScript - Not found
    npm ERR! 404
    npm ERR! 404 'TypeScript@latest' is not in the npm registry.
    npm ERR! 404 Your package name is not valid, because
    npm ERR! 404 1. name can no longer contain capital letters
    npm ERR! 404
    npm ERR! 404 Note that you can also install from a
    npm ERR! 404 tarball, folder, http url, or git url.
    Il faut donc lancer :
    Code :
    npm install typescript
    Il y a une coquille dans la partie traitant des fonctions fléchées, le début du texte étant en doublon :
    En TypeScript comme en JavaScript ES6, les fonctions fléchées sont supportées, bien entendu le typage des
    paramètres et En TypeScript comme en JavaScript ES6, les fonctions fléchées sont supportées, bien entendu le
    typage des paramètres et de la donnée de retour est à ajouter au sein de la version TypeScript.
    Enfin, dans le section traitant des modules, l'exemple donné génère un bug :
    index.ts:5:9 - error TS2440: Import declaration conflicts with local declaration of 'toto'.
    Une solution possible est d'utiliser un alias lors de l'importation :
    Code :
    1
    2
    3
    4
    5
    6
      export function toto(){
            console.log("toto est beau");
        }
    
        import {toto as tutu} from './ts_modules_1';
        tutu();
    Voilà pour ma petite contribution.
  • bringer
    Membre habitué
    Ce tutoriel de Moocacino est assez connu.

    Vous le reprenez (ou peut-être en êtes vous l'auteur sous un autre nom).
    Ce que je trouve dommage, c'est que la partie la plus technique soit complètement occultée, à savoir le chargement de texture.
    Il est annoncé dans le tuto que charger des texture est extrêmement simple. en fait non, je trouve personnellement que chargé des texture en JS / TS est plutôt extrêmement compliqué du fait de l'asynchronicité.

    Alors oui, faire un fetch et charger la texture en soit c'est ok, mais ensuite, pour la stoker dans une variable et surtout pouvoir l'utiliser en dehors de la promise, c'est plus la même musique.
    Comprendre l'asynchrone en soit est une gageur. Même si le concept est assez facilement appréhendable, la mise en oeuvre est complexe. Bien sur, ceci n'est qu'un avis personnel.
    D'ailleurs, dans le tuto d'origine, l'auteur passe par la création intelligente d'un loader, mais qui n'est pas si simple que cela à comprendre.

    Donc, oui, j'aurais apprécier un tuto complet juste sur cette partie qui le mériterai bien (AMHA)

    Merci pour ce tuto malgré tout. Cela reste un gros travail de préparation.
    Bonne continuation
  • Sodium
    Membre extrêmement actif
    Alors déjà il faudrait te décider : est-ce que tu fais un tuto pour apprendre les bases du TypeScript, de la POO ou sur la création d'un moteur de jeu vidéo ?

    Les trois à la fois ça n'a aucun intérêt, ce ne sont pas les ressources qui manquent à ce sujet. Tu en es au troisième tutorial et l'on a encore rien vu de concret concernant le titre de l'article.
  • Sodium
    Membre extrêmement actif
    Envoyé par atlanthot
    Après, je ne suis pas contre les critiques constructives, selon toi, comment aurais-je du présenter la chose ?
    Envoyer vers des tutos existants sur les bases de TypeScript, POO, HTML Canvas et rentrer directement dans le vif du sujet.