Alphorm.com Formation TypeScript

105
Formation TypeScript Une formation Frédéric GAURAT

Transcript of Alphorm.com Formation TypeScript

Page 1: Alphorm.com Formation TypeScript

Formation TypeScript

Une formation

Frédéric GAURAT

Page 2: Alphorm.com Formation TypeScript

Une formation

Introduction

1. Présentation du langage TypeScript

2. Les éléments du Langage TypeScript

3. Organiser son code TypeScript

4. Les particularités du langage TypeScript

Conclusion

Plan de la formation

Page 3: Alphorm.com Formation TypeScript

Une formation

Les développeurs et chefs de projets qui souhaitent découvrir le langage TypeScript

Public concerné

Page 4: Alphorm.com Formation TypeScript

Une formation

Connaissances requises

Page 5: Alphorm.com Formation TypeScript

A vous de jouer !

Page 6: Alphorm.com Formation TypeScript

Présentation du projet

Une formation

Frédéric GAURAT

Page 7: Alphorm.com Formation TypeScript

Une formation

Plan

Le projet Todo List

Le serveur et la base de données

Présentation des outils

Page 8: Alphorm.com Formation TypeScript

Une formation

Le serveur et la BDD

Page 9: Alphorm.com Formation TypeScript

Une formation

Présentation des outils

Les éditeurs

SublimeText

Atom

Microsoft Visual Studio Code

NotePad++

Page 10: Alphorm.com Formation TypeScript

Merci

Page 11: Alphorm.com Formation TypeScript

Présentation de TypeScript

Une formation

Frédéric GAURAT

Page 12: Alphorm.com Formation TypeScript

Une formation

Limites de JS

TypeScript

Transpilateur (Transpiler)

Plan

Page 13: Alphorm.com Formation TypeScript

Une formation

Les limites de JavaScript

Les types

Les portées

Les modules

La vérification

Page 14: Alphorm.com Formation TypeScript

Une formation

TypeScript

Sur-ensemble de JavaScript

Langage conçu par Microsoft

Utilisé pour le développement d’Angular 2

Page 15: Alphorm.com Formation TypeScript

Une formation

Principe de fonctionnement

Page 16: Alphorm.com Formation TypeScript

Une formation

Compilateur

Logiciel

Matériel

Compilation

Page 17: Alphorm.com Formation TypeScript

Une formation

Transpileur : avantages

Logiciel

Matériel

Transpileur

Page 18: Alphorm.com Formation TypeScript

Une formation

Transpileur : principe

TypeScript Transpileur JavaScript

Tran

spile

ur

CoffeeScript

Page 19: Alphorm.com Formation TypeScript

Merci

Page 20: Alphorm.com Formation TypeScript

Installation de TypeScript

Une formation

Frédéric GAURAT

Page 21: Alphorm.com Formation TypeScript

Une formation

Installation de Node.js

Installation de TypeScript

Installation de Visual Studio Code

Vérification de l’installation

Plan

Page 22: Alphorm.com Formation TypeScript

Merci

Page 23: Alphorm.com Formation TypeScript

Utilisation de TypeScript

Une formation

Frédéric GAURAT

Page 24: Alphorm.com Formation TypeScript

Une formation

Un projet Javascript vs TypeScript

Démonstrations

Plan

Page 25: Alphorm.com Formation TypeScript

Une formation

Un projet JavaScript

node_modules

bower_components

package.json

bower.json

gulpfile.js

Page 26: Alphorm.com Formation TypeScript

Une formation

Un projet TypeScript

node_modules

typings

bower_components

package.json

bower.json

gulpfile.js

tsconfig.json

typings.json

Page 27: Alphorm.com Formation TypeScript

Une formation

Démonstrations

Générer le fichier tsconfig.json

Les options du tsconfig.json

Exemple du tsconfig.json

Page 28: Alphorm.com Formation TypeScript

Merci

Page 29: Alphorm.com Formation TypeScript

Les types sous TypeScript

Une formation

Frédéric GAURAT

Page 30: Alphorm.com Formation TypeScript

Une formation

Notion de type

Rappel sur les portées et déclaration

Les types fondamentaux

L’affirmation de type

Plan

Page 31: Alphorm.com Formation TypeScript

Une formation

Notion de type

Préciser la taille d’une donnée en mémoire

Garantir une cohérence dans votre code

TypeScript :

var a:int = 3;

Page 32: Alphorm.com Formation TypeScript

Une formation

Rappel

JavaScript (es5) JavaScript (es6)

TypeScript

Page 33: Alphorm.com Formation TypeScript

Une formation

Les types fondamentaux

Les Booléens Les Nombres Les Chaînes Les templates de chaînes Les tableaux Les tableaux typés Les Tuples Les Enumsany void

Page 34: Alphorm.com Formation TypeScript

Une formation

L’affirmation de type

Indiquer à TypeScript que « nous savons ce que nous faisons »

Proche du cast de type dans d’autres langages

Page 35: Alphorm.com Formation TypeScript

Merci

Page 36: Alphorm.com Formation TypeScript

Les fonctions sous TypeScript

Une formation

Frédéric GAURAT

Page 37: Alphorm.com Formation TypeScript

Une formation

Rappel sur les fonctions

Les types appliqués aux fonctions

Les paramètres

Lambdas et this

Surcharge de fonction

Plan

Page 38: Alphorm.com Formation TypeScript

Une formation

Rappel sur les fonctions

Fonction nommée

Fonction anonyme

Page 39: Alphorm.com Formation TypeScript

Une formation

Démonstrations

Les types appliqués aux fonctions

Les paramètres optionnels

Les paramètres par défaut

Nombre de paramètres variable

Lambdas et this

Surcharge de fonction

Page 40: Alphorm.com Formation TypeScript

Merci

Page 41: Alphorm.com Formation TypeScript

Les Classes sous TypeScript

Une formation

Frédéric GAURAT

Page 42: Alphorm.com Formation TypeScript

Une formation

Rappel sur les classes

Démonstrations

Plan

Page 43: Alphorm.com Formation TypeScript

Une formation

Rappel sur les classes

JavaScript s’appuie sur les fonctions pour la création de composant

JavaScript s’appuie sur les prototypes pour spécialiser ces composants

JavaScript ne propose pas de notion de classe

Page 44: Alphorm.com Formation TypeScript

Une formation

Rappel sur les classes

TypeScript propose d’utiliser les notions de programmation orientée objet.

Page 45: Alphorm.com Formation TypeScript

Une formation

Démonstrations

Le constructeur

L’encapsulation

Les accesseurs (es5)

L’héritage

Les propriétés static

Les classes abstraites

Les classes et interfaces

Page 46: Alphorm.com Formation TypeScript

Merci

Page 47: Alphorm.com Formation TypeScript

Les interfaces sous TypeScript

Une formation

Frédéric GAURAT

Page 48: Alphorm.com Formation TypeScript

Une formation

Les interfaces et le typage structurel

Démonstrations

Plan

Page 49: Alphorm.com Formation TypeScript

Une formation

Les interfaces et le typage structurel

Wikipédia :Une interface est la couche limite par laquelle ont lieu les échanges et les interactions entre deux éléments.

Exemple : Interface Homme Machine

Dans la plupart des langages une interface est un contrat.

En JavaScript : pas d’interface.

Page 50: Alphorm.com Formation TypeScript

Une formation

Démonstrations

Les interfaces et le typage structurel

Attributs optionnels

Attributs en lecture seule

Attribut de type indexable

Page 51: Alphorm.com Formation TypeScript

Merci

Page 52: Alphorm.com Formation TypeScript

Les types génériques sous TypeScript

Une formation

Frédéric GAURAT

Page 53: Alphorm.com Formation TypeScript

Une formation

Introduction aux Generics

Les fonctions génériques

Les classes génériques

Ajouter des contraintes sur les types

Plan

Page 54: Alphorm.com Formation TypeScript

Une formation

Introduction aux Generics

L’ajout de type à JavaScript offre une sécurité aux développeurs

Mais limite le passage des paramètres aux seuls types déclarés

La solution est de déclarer une autre variable qui sera initialisée avec le type

Page 55: Alphorm.com Formation TypeScript

Une formation

Démonstrations

Les fonctions génériques

Les classes génériques

Ajouter des contraintes sur les types

Page 56: Alphorm.com Formation TypeScript

Merci

Page 57: Alphorm.com Formation TypeScript

Les Enums sous TypeScript

Une formation

Frédéric GAURAT

Page 58: Alphorm.com Formation TypeScript

Une formation

Notion d’énumération

Syntaxe et utilisation

Plan

Page 59: Alphorm.com Formation TypeScript

Une formation

Notion d’Enum

• Définir un ensemble de valeurs numériques constantes

• Utiliser le mot-clé enum

• Bidirectionnelles :

• nom => valeur

• valeur => nom

Page 60: Alphorm.com Formation TypeScript

Une formation

Démonstrations

Syntaxe et utilisation

Page 61: Alphorm.com Formation TypeScript

Merci

Page 62: Alphorm.com Formation TypeScript

Les Symbols sous TypeScript

Une formation

Frédéric GAURAT

Page 63: Alphorm.com Formation TypeScript

Une formation

Présentation des Symbols

Un exemple simple d’utilisation

Plan

Page 64: Alphorm.com Formation TypeScript

Une formation

Présentation des Symbols

Un Symbol est un type de données apparu en ES6

Type primitif avec des caractéristiques particulières :

• Initialisé à partir d’un constructeur,

• Unique et non modifiable,

• Utilisable comme attribut d’objet.

Page 65: Alphorm.com Formation TypeScript

Merci

Page 66: Alphorm.com Formation TypeScript

Les Itérateurs et générateurs sous TypeScript

Une formation

Frédéric GAURAT

Page 67: Alphorm.com Formation TypeScript

Une formation

Un objet itérable

Implémentation d’un itérateur

Les générateurs

Plan

Page 68: Alphorm.com Formation TypeScript

Une formation

Un objet itérable

Supporte les boucles for..of ou for..in

Implémente la propriété Symbol.iterator

Page 69: Alphorm.com Formation TypeScript

Merci

Page 70: Alphorm.com Formation TypeScript

Les Modules sous TypeScript

Une formation

Frédéric GAURAT

Page 71: Alphorm.com Formation TypeScript

Une formation

Notion de module

Démonstrations

Plan

Page 72: Alphorm.com Formation TypeScript

Une formation

Notion de module

Les modules permettent d’organiser du code plus facilement

Les modules sont stockés dans des fichiers distincts (un module par fichier)

Les relations entre modules sont spécifiées en terme d’import / export

Le chargement des modules dépend du contexte d’exécution du script (navigateur ou node.js)

Page 73: Alphorm.com Formation TypeScript

Une formation

Démonstrations

Déclarer un module et l’exporter

Importer un module ou une partie

Les chargeurs de module

Configuration de TypeScript

Page 74: Alphorm.com Formation TypeScript

Merci

Page 75: Alphorm.com Formation TypeScript

Les Namespacessous TypeScript

Une formation

Frédéric GAURAT

Page 76: Alphorm.com Formation TypeScript

Une formation

Présentation des namespaces

Démonstrations

Plan

Page 77: Alphorm.com Formation TypeScript

Une formation

Présentation des namespaces

Organiser le code

Eviter les collisions de nom

Limiter la portée des éléments déclarés

Page 78: Alphorm.com Formation TypeScript

Une formation

Démonstrations

Déclaration d’un namespace

Namespace sur plusieurs fichiers

Directive triple-slash

Namespaces et modules

Page 79: Alphorm.com Formation TypeScript

Merci

Page 80: Alphorm.com Formation TypeScript

Les décorateurs

Une formation

Frédéric GAURAT

Page 81: Alphorm.com Formation TypeScript

Une formation

Présentation des décorateurs

Démonstrations

Plan

Page 82: Alphorm.com Formation TypeScript

Une formation

Présentation des décorateurs

Des déclarations particulières appliquées à des : classes, méthodes, accesseurs, propriétés,

paramètres.

Préfixés d’un @

Exécutés au moment du runtime

Page 83: Alphorm.com Formation TypeScript

Une formation

Implémenter un décorateur

Une function :

Appel immédiat pas d’initialisation possible

Une factory :

Appel immédiat mais permet de paramétrer le décorateur

Page 84: Alphorm.com Formation TypeScript

Une formation

Démonstrations

Implémenter un décorateur

Page 85: Alphorm.com Formation TypeScript

Merci

Page 86: Alphorm.com Formation TypeScript

Les mixins

Une formation

Frédéric GAURAT

Page 87: Alphorm.com Formation TypeScript

Une formation

Notion de mixins

Implémenter un mixin en TypeScript

Plan

Page 88: Alphorm.com Formation TypeScript

Une formation

Notion de mixins

mixer plusieurs classes dans une seule

L’héritage multiple (non supporté, TypeScript)

Page 89: Alphorm.com Formation TypeScript

Merci

Page 90: Alphorm.com Formation TypeScript

Les fichiers de déclaration de type

Une formation

Frédéric GAURAT

Page 91: Alphorm.com Formation TypeScript

Une formation

Présentation des fichiers

Démonstrations

Plan

Page 92: Alphorm.com Formation TypeScript

Une formation

Présentation des fichiers

Utiliser des bibliothèques externes en bénéficiant de la vérification de type proposé par TypeScript

TypeScript permet la prise en compte des différentes « formes » de bibliothèque (Web, Node.js)

Page 93: Alphorm.com Formation TypeScript

Une formation

Démonstrations

Créer un fichier de déclaration de type

Utilisation d’un fichier de déclaration de type

Utiliser TypeScript avec d’autres Bibliothèques

Page 94: Alphorm.com Formation TypeScript

Merci

Page 95: Alphorm.com Formation TypeScript

Le projet TodoList

Une formation

Frédéric GAURAT

Page 96: Alphorm.com Formation TypeScript

Une formation

Plan

Le projet Todo List

Installation des outils

Développement du projet

Page 97: Alphorm.com Formation TypeScript

Une formation

Le projet Todo List

Page 98: Alphorm.com Formation TypeScript

Une formation

Installation des outils

Node/npm

MongoDB / Deployd

Page 99: Alphorm.com Formation TypeScript

Une formation

Démonstration

Préparation du projet

Installation des dépendances

Page 100: Alphorm.com Formation TypeScript

Merci

Page 101: Alphorm.com Formation TypeScript

Conclusion

Une formation

Frédéric GAURAT

Page 102: Alphorm.com Formation TypeScript

Une formation

Ce qui a été couvert

Ce qui reste à aborder

Plan

Page 103: Alphorm.com Formation TypeScript

Une formation

Ce qui a été couvert

Présentation de la formation

Présentation du projet de la formation

TypeScript présentation installation et utilisation

Les éléments du Langage TypeScript

L’organisation du code TypeScript

Les particularités

Page 104: Alphorm.com Formation TypeScript

Une formation

Ce qui reste à aborder

Page 105: Alphorm.com Formation TypeScript

Merci