Cours TypeScript
Cours TypeScript
TypeScript
TypeScript
TypeScript est un langage proposé par Microsoft en 2012.
Il est open source, développé comme sur-ensemble de JS ainsi
tout code valide en JS l’est également en TypeScript.
Langage de programmation :
- procédural et orienté-objet
- supportant le typage statique, dynamique & générique
TypeScript rend JS plus proche d'un langage orienté objet
à typage statique comme (Java, C#,...).
TypeScript peut introduire de nouvelles fonctionnalités de
langage tout en conservant la compatibilité avec les moteurs
JavaScript existants supportant ES3, ES5 et ES6
Introduction
TypeScript
Principe de fonctionnement de TypeScript
TypeScript
TypeScript
transpiler
[Link] [Link]
Introduction
TypeScript
Comment va t-on procéder dans ce cours ?
transpiler exécuter
[Link] [Link] résultat
Introduction
TypeScript
Comment va t-on procéder dans ce cours ?
transpiler exécuter
[Link] [Link] résultat
Introduction
TypeScript
Comment va t-on procéder dans ce cours ?
transpiler exécuter
[Link] [Link] résultat
tsc [Link]
Introduction
TypeScript
Comment va t-on procéder dans ce cours ?
transpiler exécuter
[Link] [Link] résultat
tsc [Link]
Introduction
TypeScript
Comment va t-on procéder dans ce cours ?
transpiler exécuter
[Link] [Link] résultat
TypeScript
Comment va t-on procéder dans ce cours ?
transpiler exécuter
[Link] [Link] résultat
TypeScript
Comment va t-on procéder dans ce cours ?
transpiler exécuter
[Link] [Link] résultat
2 solutions
Introduction
TypeScript
Comment va t-on procéder dans ce cours ?
transpiler exécuter
[Link] [Link] résultat
2 solutions
TypeScript
Comment va t-on procéder dans ce cours ?
transpiler exécuter
[Link] [Link] résultat
2 solutions
TypeScript
De quoi on a besoin ?
TypeScript
TypeScript
TypeScript
TypeScript
TypeScript
TypeScript
TypeScript
TypeScript
tsc --init
Fichier de configuration
TypeScript
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"forceConsistentCasingInFileNames": true,
"strict": true,
"compileOnSave": true
}
}
Fichier de configuration
TypeScript
TypeScript
Lancez la commande
tsc
´
Fichier de configuration
TypeScript
Lancez la commande
tsc
TypeScript
Modifions la valeur de la propriété target dans [Link]
"target": "es2016"
Fichier de configuration
TypeScript
Modifions la valeur de la propriété target dans [Link]
"target": "es2016"
Relancez la commande
tsc
Fichier de configuration
TypeScript
Modifions la valeur de la propriété target dans [Link]
"target": "es2016"
Relancez la commande
tsc
TypeScript
Lancez la commande tsc en spécifiant le nom du fichier
tsc [Link]
Fichier de configuration
TypeScript
Lancez la commande tsc en spécifiant le nom du fichier
tsc [Link]
TypeScript
Lancez la commande tsc en spécifiant le nom du fichier
tsc [Link]
TypeScript
TypeScript
Ou
tsc [Link] -t es2016
Fichier de configuration
TypeScript
Créons un deuxième fichier [Link] avec le contenu suivant
[Link]("Hello World!");
Fichier de configuration
TypeScript
Créons un deuxième fichier [Link] avec le contenu suivant
[Link]("Hello World!");
Lancez la commande
tsc
Fichier de configuration
TypeScript
Créons un deuxième fichier [Link] avec le contenu suivant
[Link]("Hello World!");
Lancez la commande
tsc
Remarque
Vérifier que les deux fichiers [Link] et [Link] ont été transpilé
en [Link] et [Link].
Fichier de configuration
{
"exclude": ["[Link]"],
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noImplicitAny": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"compileOnSave": true
}
}
Fichier de configuration
{
"exclude": ["[Link]"],
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noImplicitAny": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"compileOnSave": true
}
}
tsc
Fichier de configuration
{
"exclude": ["[Link]"],
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noImplicitAny": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"compileOnSave": true
}
}
tsc
Remarque
{
"include": ["[Link]"],
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noImplicitAny": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"compileOnSave": true
}
}
Fichier de configuration
{
"include": ["[Link]"],
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noImplicitAny": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"compileOnSave": true
}
}
tsc
Fichier de configuration
tsc
Remarque
TypeScript
TypeScript
Déclarer une variable
TypeScript
Déclarer une variable
Exemple
var x = 2
Typage Typage dynamique
TypeScript
Déclarer une variable
Exemple
var x = 2
[Link](typeof x);
// affiche number
x = "Bonjour";
// Ceci genere une erreur
Typage Typage dynamique
TypeScript
[Link]([Link]());
Typage Typage dynamique
TypeScript
[Link]([Link]());
Remarques
Avec le typage statique (en utilisant un IDE), cette erreur sera détectée
avant la transpilation
Typage Typage statique
TypeScript
Déclarer une variable
var nomVariable: typeVariable;
Typage Typage statique
TypeScript
Déclarer une variable
var nomVariable: typeVariable;
Exemple
var x: number;
Typage Typage statique
TypeScript
Déclarer une variable
var nomVariable: typeVariable;
Exemple
var x: number;
TypeScript
Déclarer une variable
var nomVariable: typeVariable;
Exemple
var x: number;
TypeScript
TypeScript
Quels types pour les variables en TypeScript ?
TypeScript
Quels types pour les variables en TypeScript ?
TypeScript
Pour les chaı̂nes de caractères, on peut faire
var str1: string = "wick";
var str2: string = 'john';
Typage Typage statique
TypeScript
Pour les chaı̂nes de caractères, on peut faire
var str1: string = "wick";
var str2: string = 'john';
TypeScript
Pour les chaı̂nes de caractères, on peut faire
var str1: string = "wick";
var str2: string = 'john';
L’équivalent de faire
var str3: string = "Bonjour " + str2 + " " + str1 + "\nQue
pensez-vous de TypeScript ?";
TypeScript
Exemple avec any
var x: any;
x = "bonjour";
x = 5;
[Link](x);
// affiche 5;
Typage Typage statique
TypeScript
Exemple avec any
var x: any;
x = "bonjour";
x = 5;
[Link](x);
// affiche 5;
Une variable de type any peut être affectée à n’importe quel autre
type de variable
var x: any;
x = "bonjour";
x = 5;
var y: number = x;
Typage Typage statique
TypeScript
On peut aussi modifier plusieurs indices simultanément
enum mois { JANVIER = 1, FEVRIER, MARS, AVRIL = 10, MAI, JUIN,
JUILLET, AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE = 2, DECEMBRE };
Typage Typage statique
TypeScript
On peut aussi modifier plusieurs indices simultanément
enum mois { JANVIER = 1, FEVRIER, MARS, AVRIL = 10, MAI, JUIN,
JUILLET, AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE = 2, DECEMBRE };
TypeScript
On peut aussi modifier plusieurs indices simultanément
enum mois { JANVIER = 1, FEVRIER, MARS, AVRIL = 10, MAI, JUIN,
JUILLET, AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE = 2, DECEMBRE };
TypeScript
Pour déclarer un objet
var obj: {
nom: string;
numero: number;
};
Typage Typage statique
TypeScript
Pour déclarer un objet
var obj: {
nom: string;
numero: number;
};
[Link](obj);
// affiche { nom: 'wick', numero: 100 }
[Link](typeof obj);
// affiche object
TypeScript
[Link](obj);
// affiche { nom: 'abruzzi', numero: 200 }
Typage Typage statique
TypeScript
[Link](obj);
// affiche { nom: 'abruzzi', numero: 200 }
TypeScript
Déstructuration (ES6)
Exemple
var personne = { nom: 'wick', prenom: 'john' };
var { nom, prenom } = personne;
[Link](nom, prenom);
// affiche wick john
Typage Union de type
TypeScript
Union de type
Il est possible d’autoriser plusieurs types de valeurs pour une variable
Typage Union de type
TypeScript
Union de type
Il est possible d’autoriser plusieurs types de valeurs pour une variable
TypeScript
Union de type
Il est possible d’autoriser plusieurs types de valeurs pour une variable
TypeScript
Union de type
Il est possible d’autoriser plusieurs types de valeurs pour une variable
TypeScript
Croisement de type
Il est possible qu’une variable ait les propriétés de plusieurs types différents
Typage Croisement de type
TypeScript
Croisement de type
Il est possible qu’une variable ait les propriétés de plusieurs types différents
TypeScript
[Link](a);
// affiche 2
[Link](b);
// affiche 3.5
Typage Conversion
TypeScript
[Link](a);
// affiche 2
[Link](b);
// affiche 3.5
TypeScript
Coalescence nulle (??)
Introduit dans ES2020.
Intégré dans TypeScript depuis la version 3.7.
Quelques opérateurs sur les variables Coalescence nulle ou Nullish Coalescing ( ? ?)
TypeScript
Coalescence nulle (??)
Introduit dans ES2020.
Intégré dans TypeScript depuis la version 3.7.
C’est équivalent à
let nom: string;
let value: string = (nom !== null && nom !== undefined) ? nom :'doe';
[Link](value);
// affiche doe
Quelques opérateurs sur les variables Coalescence nulle et affectation ( ? ?=)
TypeScript
Coalescence nulle et affectation (??=)
TypeScript
Coalescence nulle et affectation (??=)
L’opérateur ??= permet d’affecter une valeur à la variable si sa valeur actuelle est
null ou undefined
let nom:string;
nom??= "doe";
[Link](nom);
// affiche doe
C’est équivalent à
let nom: string;
if (nom === null || nom === undefined) {
nom = 'doe';
}
[Link](nom);
// affiche doe
Constante
TypeScript
Les constantes
se déclare avec le mot-clé const
permet à une variable de ne pas changer de valeur
Constante
TypeScript
Les constantes
se déclare avec le mot-clé const
permet à une variable de ne pas changer de valeur
TypeScript
Avec TypeScript 3.4, on peut définir une constante avec une assertion
sans préciser le type
let X = "bonjour" as const;
[Link](X);
// affiche bonjour
[Link](typeof X);
// affiche string
TypeScript
Avec TypeScript 3.4, on peut définir une constante avec une assertion
sans préciser le type
let X = "bonjour" as const;
[Link](X);
// affiche bonjour
[Link](typeof X);
// affiche string
Ceci génère une erreur car une constante ne peut changer de valeur
X = "hello";
Constante
TypeScript
Avec TypeScript 3.4, on peut aussi définir une constante ainsi
let X = <const>"bonjour";
[Link](X);
// affiche bonjour
[Link](typeof X);
// affiche string
TypeScript
Avec TypeScript 3.4, on peut aussi définir une constante ainsi
let X = <const>"bonjour";
[Link](X);
// affiche bonjour
[Link](typeof X);
// affiche string
Ceci génère une erreur car une constante ne peut changer de valeur
X = "hello";
Fonction Déclaration et appel
TypeScript
Déclarer une fonction
function nomFonction([les paramètres]){
les instructions de la fonction
}
Fonction Déclaration et appel
TypeScript
Déclarer une fonction
function nomFonction([les paramètres]){
les instructions de la fonction
}
Exemple
function somme(a: number, b: number): number {
return a + b;
}
Fonction Déclaration et appel
TypeScript
Déclarer une fonction
function nomFonction([les paramètres]){
les instructions de la fonction
}
Exemple
function somme(a: number, b: number): number {
return a + b;
}
TypeScript
Le code suivant génère une erreur
function somme(a: number, b: number): string {
return a + b;
}
Fonction Déclaration et appel
TypeScript
Le code suivant génère une erreur
function somme(a: number, b: number): string {
return a + b;
}
Celui-ci aussi
let resultat: number = somme ("1", 3);
Fonction Déclaration et appel
TypeScript
Le code suivant génère une erreur
function somme(a: number, b: number): string {
return a + b;
}
Celui-ci aussi
let resultat: number = somme ("1", 3);
Et même celui-ci
let resultat: string = somme(1, 3);
Fonction Déclaration et appel
TypeScript
TypeScript
[Link](division(10));
// affiche 10
[Link](division(10, 2));
// affiche 5
Fonction Paramètres optionnels
TypeScript
[Link](division(10));
// affiche 10
[Link](division(10, 2));
// affiche 5
Fonction Paramètres restants
TypeScript
Il est possible de définir une fonction prenant un nombre indéfini de
paramètres
function somme(x: number, ...tab: number[]): number {
for (let elt of tab)
x += elt;
return x;
}
[Link](somme(10));
// affiche 10
[Link](somme(10, 5));
// affiche 15
[Link](somme(10, 1, 6));
// affiche 17
Fonction Paramètres à plusieurs types autorisés
TypeScript
[Link](stringOrNumber("bonjour", 3));
// affiche 10
[Link](stringOrNumber(5, 3));
// affiche 8
Fonction Paramètres en lecture seule
TypeScript
Le mot-clé ReadonlyArray (TypeScript 3.4) indique qu’un paramètre de type
tableau est en lecture seule (non-modifiable)
function incrementAll(tab: ReadonlyArray<number>): void {
for (let i = 0; i < [Link]; i++){
// la ligne suivante génère une erreur
tab[i]++;
}
}
Fonction Paramètres en lecture seule
TypeScript
Le mot-clé ReadonlyArray (TypeScript 3.4) indique qu’un paramètre de type
tableau est en lecture seule (non-modifiable)
function incrementAll(tab: ReadonlyArray<number>): void {
for (let i = 0; i < [Link]; i++){
// la ligne suivante génère une erreur
tab[i]++;
}
}
On peut aussi utiliser le mot-clé readonly qui s’applique sur les tableaux et les
tuples
function incrementAll(tab: readonly number[]): void {
for (let i = 0; i < [Link]; i++){
// la ligne suivante génère une erreur
tab[i]++;
}
}
Fonction Fonctions génératrices
TypeScript
Fonction génératrice
TypeScript
Fonction génératrice
Exemple
function* generateur() {
for (let i = 0; i < 3; i++) {
yield i;
}
}
Fonction Fonctions génératrices
TypeScript
Lorsqu’on appelle une fonction génératrice, son corps n’est pas
exécuté immédiatement, c’est un itérateur qui est renvoyé.
var f = generateur();
Fonction Fonctions génératrices
TypeScript
Lorsqu’on appelle une fonction génératrice, son corps n’est pas
exécuté immédiatement, c’est un itérateur qui est renvoyé.
var f = generateur();
Exemple
[Link]([Link]());
// affiche { value: 0, done: false }
[Link]([Link]().value);
// affiche 1
[Link]([Link]().value);
// affiche 2
[Link]([Link]());
// affiche { value: undefined, done: true }
Fonction Fonctions génératrices
Exemple
[Link]([Link]());
// affiche { value: 0, done: false }
[Link]([Link]().value);
// affiche 1
[Link]([Link]().value);
// affiche 2
[Link]([Link]());
// affiche { value: undefined, done: true }
"target": "es6"
Fonction Fonctions génératrices
TypeScript
//Premiere version
for(let e of f) {
[Link](e);}
//Deuxieme version
while (true) {
const value = [Link]();
if ([Link]) {
break;
}
[Link]([Link]);
}
Fonction Fonctions fléchées (arrow function)
TypeScript
Il est possible de déclarer une fonction en utilisant les expressions fléchées
let nomFonction = ([les paramètres]): typeValeurRetour => {
les instructions de la fonction
}
Fonction Fonctions fléchées (arrow function)
TypeScript
Il est possible de déclarer une fonction en utilisant les expressions fléchées
let nomFonction = ([les paramètres]): typeValeurRetour => {
les instructions de la fonction
}
Exemple
let somme = (a: number, b: number): number => { return a + b; }
Fonction Fonctions fléchées (arrow function)
TypeScript
Il est possible de déclarer une fonction en utilisant les expressions fléchées
let nomFonction = ([les paramètres]): typeValeurRetour => {
les instructions de la fonction
}
Exemple
let somme = (a: number, b: number): number => { return a + b; }
Ou en plus simple
let somme = (a: number, b: number): number => a + b;
Fonction Fonctions fléchées (arrow function)
TypeScript
Il est possible de déclarer une fonction en utilisant les expressions fléchées
let nomFonction = ([les paramètres]): typeValeurRetour => {
les instructions de la fonction
}
Exemple
let somme = (a: number, b: number): number => { return a + b; }
Ou en plus simple
let somme = (a: number, b: number): number => a + b;
TypeScript
Remarque
TypeScript
Remarque
TypeScript
Une première déclaration de tableau
TypeScript
Une première déclaration de tableau
TypeScript
Une première déclaration de tableau
TypeScript
Pour les tuples, on initialise toutes les valeurs à la déclaration
TypeScript
Pour les tuples, on initialise toutes les valeurs à la déclaration
[Link](t[0]);
// affiche 100
Typage Typage statique
TypeScript
Pour les tuples, on initialise toutes les valeurs à la déclaration
[Link](t[0]);
// affiche 100
Ou en écriture
t[2] = "travolta";
[Link](t);
// affiche [ 100, 'wick', 'travolta' ]
Typage Typage statique
TypeScript
TypeScript
TypeScript
On peut utiliser ? rendre certains éléments de tuple optionnels
TypeScript
On peut utiliser ? rendre certains éléments de tuple optionnels
En faisant une affectation à un tuple, il faut indiquer une valeur pour chaque élément non
optionnel
t = [100, 'wick'];
[Link](t);
// affiche [ 100, 'wick' ]
Typage Typage statique
TypeScript
On peut utiliser ? rendre certains éléments de tuple optionnels
En faisant une affectation à un tuple, il faut indiquer une valeur pour chaque élément non
optionnel
t = [100, 'wick'];
[Link](t);
// affiche [ 100, 'wick' ]
[Link](t[2]);
// affiche undefined
Typage Typage statique
TypeScript
TypeScript
TypeScript
TypeScript
On peut aussi utiliser les ... pour le restant d’éléments de même type
TypeScript
On peut aussi utiliser les ... pour le restant d’éléments de même type
TypeScript
Les éléments restants peuvent ne pas être à la dernière position si l’élément
suivant est ni optionnel ni restant et est de type différent
TypeScript
Les éléments restants peuvent ne pas être à la dernière position si l’élément
suivant est ni optionnel ni restant et est de type différent
Exemple d’ajout
TypeScript
Exemple
TypeScript
Exemple
On peut utiliser la méthode from pour créer un tableau à partir d’un itérable
[Link]([Link]('wick'));
// affiche [ 'w', 'i', 'c', 'k' ]
Array from
TypeScript
Exemple
On peut utiliser la méthode from pour créer un tableau à partir d’un itérable
[Link]([Link]('wick'));
// affiche [ 'w', 'i', 'c', 'k' ]
On peut aussi utiliser la méthode from pour créer un tableau à partir d’un
autre tableau
TypeScript
TypeScript
TypeScript
[Link](Array(7));
// affiche [ <7 empty items> ]
Array fill
TypeScript
La méthode fill permet de remplir les éléments d’un tableau
entre deux index avec une valeur statique
let tab = Array(7);
[Link](2);
[Link](tab);
H I ©
// affiche [ 2, 2, 2, 2, 2, 2, 2 ]
UEL
O
[Link](0, 3);
f E LM
[Link](tab);
ch r e
©A
// affiche [ 2, 2, 2, 0, 0, 0, 0 ]
[Link](5, 2, 4);
[Link](tab);
// affiche [ 2, 2, 5, 5, 0, 0, 0 ]
Array fill
TypeScript
Les fonctions fléchées sont utilisées pour réaliser les opérations suivant sur les
tableaux
H I ©
map() : pour appliquer une fonction sur les éléments d’un tableau
U EL
O
filter() : pour filtrer les éléments d’un tableau selon un critère défini sous
f E LM
forme d’une fonction anonyme ou fléchée
ch r e
reduce() : pour réduire tous les éléments d’un tableau en un seul selon une
A
règle définie dans une fonction anonyme ou fléchée
©
some() : pour vérifier s’il existe au moins un élément qui respect une condition
...
Array forEach
TypeScript
La fonction afficher peut accepter deux paramètres : le premier
est la valeur de l’itération courante et le deuxième est son indice
dans le tableau
[Link](afficher);
/* affiche
0 2
1 3
2 5
*/
Array forEach
TypeScript
La fonction afficher peut accepter un troisième paramètre qui
correspond au tableau
[Link](afficher);
H I ©
EL
function afficher(value: number, key: number, t:
Array<number>) {
O U
} f E LM
[Link](key, value, t);
ch r e
/* affiche ©A
0 2 [ 2, 3, 5 ]
1 3 [ 2, 3, 5 ]
2 5 [ 2, 3, 5 ]
*/
Array map
TypeScript
TypeScript
TypeScript
Remarque
TypeScript
Remarque
[Link](somme);
// affiche 14
Array reduce
TypeScript
Remarques
TypeScript
[Link](somme);
// affiche 14
Array reduce
TypeScript
[Link](somme);
// affiche 14
Array some
TypeScript
[Link](result);
// affiche true
Array every
TypeScript
[Link](result);
// affiche false
Map
TypeScript
Map (dictionnaire)
TypeScript
Pour créer un Map
TypeScript
Pour créer un Map
[Link]('html', 18);
Map
TypeScript
Pour créer un Map
[Link]('html', 18);
[Link]('html', 18)
.set('css', 12);
Map
TypeScript
Si la clé existe déjà, la valeur sera remplacée
[Link]([Link]('html', 20));
// affiche Map { 'php' => 17, 'java' => 10, 'c' => 12, 'html' => 20 }
Map
TypeScript
Si la clé existe déjà, la valeur sera remplacée
[Link]([Link]('html', 20));
// affiche Map { 'php' => 17, 'java' => 10, 'c' => 12, 'html' => 20 }
[Link]([Link]('php'));
// affiche 17
Map
TypeScript
Si la clé existe déjà, la valeur sera remplacée
[Link]([Link]('html', 20));
// affiche Map { 'php' => 17, 'java' => 10, 'c' => 12, 'html' => 20 }
[Link]([Link]('php'));
// affiche 17
[Link]([Link]('php'));
// affiche true
Map
TypeScript
Si la clé existe déjà, la valeur sera remplacée
[Link]([Link]('html', 20));
// affiche Map { 'php' => 17, 'java' => 10, 'c' => 12, 'html' => 20 }
[Link]([Link]('php'));
// affiche 17
[Link]([Link]('php'));
// affiche true
[Link]('php');
Map
TypeScript
Pour récupérer la liste des clés d’un Map
[Link]([Link]());
// affiche [Map Iterator] { 'java', 'c', 'html', 'css' }
Map
TypeScript
Pour récupérer la liste des clés d’un Map
[Link]([Link]());
// affiche [Map Iterator] { 'java', 'c', 'html', 'css' }
[Link]([Link]());
// affiche [Map Iterator] { 10, 12, 20, 12 }
Map
TypeScript
Pour récupérer la liste des clés d’un Map
[Link]([Link]());
// affiche [Map Iterator] { 'java', 'c', 'html', 'css' }
TypeScript
Pour parcourir un Map, on peut utiliser entries() (solution ES5)
for (let elt of [Link]())
[Link](elt[0] + " " + elt[1]);
/* affiche
java 10
c 12
html 20
css 12
*/
Map
TypeScript
Pour parcourir un Map, on peut utiliser entries()
for (let elt of [Link]())
[Link](elt[0] + " " + elt[1]);
/* affiche
java 10
c 12
html 20
css 12
*/
Ou
for (let [key, value] of map) {
[Link](key, value);
}
/* affiche
java 10
c 12
html 20
css 12
*/
Map
TypeScript
TypeScript
/* affiche
10
12
20
12
*/
Map
TypeScript
On peut aussi définir une méthode et l’appeler dans forEach (affiche
seulement les valeurs)
[Link](elt => afficher(elt));
TypeScript
On peut aussi définir une méthode et l’appeler dans forEach (affiche
seulement les valeurs)
[Link](elt => afficher(elt));
TypeScript
/* affiche
10 java
12 c
20 html
12 css
*/
Map
TypeScript
Ou aussi
[Link]((v: number, k: string) => [Link](k,v));
/* affiche
10 java
12 c
20 html
12 css
*/
Set
TypeScript
Set
Une collection ne contenant pas de doublons
Acceptant les types simples et objets
Les éléments sont stockées et récupérés dans l’ordre d’insertion
Disponible depuis ES5 puis modifié dans ES6
Set
TypeScript
Pour créer un Set
TypeScript
Pour créer un Set
[Link]('citroen');
Set
TypeScript
Pour créer un Set
[Link]('citroen');
[Link]('citroen')
.add('renault');
Set
TypeScript
On ne peut ajouter un élément deux fois
[Link]('peugeot');
[Link](marques);
// affiche Set { 'peugeot', 'ford', 'fiat', 'mercedes', '
citroen', 'renault' }
Set
TypeScript
On ne peut ajouter un élément deux fois
[Link]('peugeot');
[Link](marques);
// affiche Set { 'peugeot', 'ford', 'fiat', 'mercedes', '
citroen', 'renault' }
TypeScript
On ne peut ajouter un élément deux fois
[Link]('peugeot');
[Link](marques);
// affiche Set { 'peugeot', 'ford', 'fiat', 'mercedes', '
citroen', 'renault' }
TypeScript
TypeScript
TypeScript
/* affiche
peugeot
fiat
mercedes
citroen
renault
*/
Set
TypeScript
On peut aussi définir une méthode et l’appeler dans forEach
[Link](elt => afficher(elt));
TypeScript
On peut aussi définir une méthode et l’appeler dans forEach
[Link](elt => afficher(elt));