Surcouche à JavaScript HTML et programmation * HTML n'est pas un langage de programmation * Langage de structuration de l'information * Séparation des données et de l'apparence * HTML contient l'information seulement * CSS contient la présentation de l'information * Scripts côté serveur (PHP) ==> dynamisme du contenu * Génération de documents HTML * Interaction avec des bases de données * Contenu actualisé: ajout de données via interface, collaboration... * Scripts côté client (JavaScript) ==> dynamisme de l'apparence * Modification de la structure d'un document HTML déjà chargé * Réaction aux actions de l'utilisateur * Application interactive: navigation améliorée, didacticiels, jeux... Langage JavaScript * Langage de programmation interprété * Programme directement traduit à son exécution * Possibilité d'insérer du JavaScript dans un document HTML * Balise: <script> * Implique que le navigateur comprend / interprète ce langage * JavaScript est le langage côté client utilisé par défaut * Permet une interaction avec l'utilisateur * Exemple: <button onclick="code"> * Permet de modifier dynamiquement un document HTML * Accès balise via identifiant: p = document.getElementById("id") * Modification contenu: p.innerHTML = "texte"; * Modification apparence: p.style.color = "couleur"; Exemple de JavaScript <html> <head> <script> var compteur = 0; function incrementer() { compteur++; var par = document.getElementById("message"); par.innerHTML = "Compteur = " + compteur; } </script> </head> <body> <button onclick="incrementer()">Incrémenter</button> <p id="message"></p> </body> </html> Langage TypeScript * Programmation en JavaScript "délicate" * Débuggage difficile * Peu de contrôle du code avant exécution * Structuration du code limitée * Langage interprété ==> détection des erreurs à l'exécution * Même s'il s'agit d'une erreur de syntaxe * Programmation via TypeScript plus fiable * TypeScript = surcouche à JavaScript pour combler les "défauts" * Outil de traduction TypeScript vers JavaScript nécessaire * Car le navigateur ne reconnaît pas TypeScript * L'API JavaScript pour manipuler un document HTML reste valide * A condition de respecter les règles de syntaxe de TypeScript Avantages de TypeScript * Phase de compilation ==> détection d'erreurs plus tôt * Compilation = analyse + traduction du code * Génération d'un code JavaScript (sans erreur de syntaxe !) * Typage statique ==> plus d'erreurs détectées * Le type des variables est défini par le développeur * Et ne peut pas être changé dans tout le programme * Permet au compilateur plus de contrôle du code * Programmation orientée objet ==> code mieux structuré * Structure procédurale (i.e. avec fonctions) limitée * Structure objet plus adaptée à des projets ambitieux * Maintenance et évolution du logiciel plus facile * Programmation orientée objet particulièrement bien adaptée au développement d'applications interactives * Assimilation "naturelle" des éléments visuels à des objets * Interactions entre éléments plus simples à écrire Outils de développement pour TypeScript * Plusieurs solutions libres et multiplateformes disponibles * Compilateur TypeScript * Développé en JavaScript * Nécessite un interpréteur JavaScript ==> Node.js * Node.js = environnement d'exécution de programmes JavaScript * Proposition d'éditeur: Visual Studio Code * Environnement de développement complet * Gestion de projet * Analyse de code et complétion en temps réel * Lancement de la compilation dans l'éditeur |