Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Premier pas avec TypeScript

Par Ramneek SINGH Publié le 13/08/2017 à 02:21:07 Noter cet article:
(0 votes)
En attente de relecture par le comité de lecture

Introduction

Source : https://en.wikipedia.org/wiki/File:TypeScript_Logo.png

TypeScript est un langage de programmation développé par Microsoft afin d’écrire JavaScript orienté objet. C’est un sur-ensemble de JavaScript qui vous permet de compiler (transpiler) le code TypeScript en JavaScript.

De nos jours, JavaScript est devenu l’un des langages de programmation les plus utilisés dans le monde de l'informatique, et notamment dans celui du web. Ce langage est susceptible d’être utilisé sur presque tous les sites web. Les grandes entreprises telles que Google, Facebook, Twitter et plusieurs autres ont commencés à montrer leur intérêt pour JavaScript et ont lancé plusieurs projets open source sur le sujet.

Par exemple : AngularJs de Google, ReactJs de Facebook et HoganJs de Twitter.

Pourquoi JavaScript et comment est-il devenu populaire ?

JavaScript est flexible, simple, extensible et accessible à tout le monde. Pour travailler avec JavaScript, dans la plupart des cas il suffit d'utiliser un éditeur de texte et un navigateur web tout simplement.

La popularité de JavaScript est également basée sur plusieurs facteurs tels que le manque de concurrence, les nouveaux besoins du monde du web, l’intégration d’AJAX et son support et son utilisation pour backend (côté serveur).

Manque de concurrence

En effet, il y a un manque de concurrence. Que cela vous plaise ou pas, JavaScript est virtuellement le seul langage de programmation pour le frontend (côté client). Étant la seule option disponible, les développeurs n’ont pas d’autre choix que de travailler avec JavaScript.

Nouveaux besoins du monde du web

Depuis la création du premier site web développé par Tim Berners-Lee en 1991, les sites web ont beaucoup évolué. Lorsque nous comparons les sites web d’aujourd’hui avec ceux des années 90 nous remarquons une évolution significative.

Au cours des phases évolutives du web, des nouveaux besoins se sont introduits, tels que rendre les pages plus dynamiques (vivantes), des animations, des transitions, l’intégration de la 2D et la 3D, des jeux en ligne et des fonctionnalités événementielles (Chat, Notifications). JavaScript était le candidat qui pouvait répondre à ses besoins assez facilement car il interagit très bien avec le DOM (Document Object Model). Le DOM était le plus concerné par ces besoins. En effet, le web a commencé à exploiter le JavaScript pour se rendre plus dynamique. Maintenant, il existe des centaines de bibliothèques et plusieurs frameworks pour accélérer le développement en JavaScript. Parmi toutes ces bibliothèques et frameworks, il y a le JQuery qui est la bibliothèque la plus utilisée de nos jours .

Le but principal de cette bibliothèque est d'écrire le moins de code possible et d’obtenir le plus de résultats possible. Elle permet d'alléger la syntaxe de JavaScript, gérer des fonctionnalités spécifiques à certains navigateurs et manipuler le DOM et les évènements plus facilement que JavaScript, alors que derrière la scène la bibliothèque fait appel à JavaScript. Cette bibliothèque s’est avérée une vraie réussite par sa simplicité amenant les développeurs à utiliser de plus en plus le JavaScript sans écrire de JavaScript brut (vanilla JavaScript). Si vous êtes ici, c’est que sans doute vous avez sûrement entendu parler de JQuery.

AJAX

AJAX (Asynchronous Javascript and Xml) est un ensemble de technologies introduit par Microsoft qui est utilisé par des navigateurs web afin de communiquer “discrètement” avec le serveur. Par discrètement, cela veut dire que le navigateur web n’est pas obligé de s’actualiser pour récupérer les données depuis le serveur. Depuis son arrivé AJAX est massivement utilisé par des applications web. Par exemple, le moteur de recherche Google, Google Maps et Facebook utilisent AJAX pour rendre l’expérience utilisateur la plus fluide possible. Aujourd’hui AJAX est devenu une partie très importante de JavaScript.

Support

Le support est incomparable avec d’autres langages de programmation. JavaScript est supporté par tous les navigateurs web ou autrement dit vous n’avez pas à vous inquiéter de sous quelle plateforme vous codez. C’est l’un des grands avantages de JavaScript comparé aux autres langages de programmation. Alors qu’il existe d’autres langages de programmation qui sont également multiplateforme comme le JavaScript et qui peuvent être exécutés indépendamment de la plateforme, ces langages ont besoin d’une technologie intermédiaire pour pouvoir fonctionner. Par exemple : Java et Scala sont des langages de programmations multi-plateforme mais pour travailler avec ces langages vous avez besoin d’installer une JVM (Java Virtual Machine) sur votre système d’exploitation, laquelle est chargée de convertir le bytecode ou p-code (portable code) qui est généré par le compilateur de votre langage en code natif et qui est compréhensible pour votre système d’exploitation. Alors que dans le cas de JavaScript vous n’avez pas besoin d’avoir une technologie comme JVM.

Utilisation pour le backend

Il fut un temps quand JavaScript n’était limité qu’au frontend et était incapable de communiquer avec les bases de données, mais désormais ce n’est plus le cas. Node.js est l’outil qui a rendu l’impossible possible. Après l’arrivé de Node.js, JavaScript est devenu capable de communiquer avec les bases de données. C’est une plateforme qui permet de développer des applications web en éliminant le besoin d’utiliser un langage de programmation côté serveur tel que le PHP, Python, Ruby entre autres. C’est ce phénomène qui a permis aux développeurs utilisant le JavaScript d’appliquer leur savoir-faire au côté serveur.

Pourquoi utiliser TypeScript plutôt que JavaScript ?

C’est une question très courante que tout le monde se pose avant d’emprunter le chemin de TypeScript. Avant de justifier le choix pour utiliser TypeScript au lieu de JavaScript, je vais tout d’abord vous parler de la nature et des comportements de JavaScript et de TypeScript.

JavaScript est un langage dynamique, faiblement typé et orienté objet (Prototypé) interprété alors que TypeScript est un langage fortement typé, compilé et orienté objet. JavaScript, étant un langage faiblement typé et interprété, il ne permet pas de détecter les erreurs au moment du codage ce qui rend le débogage très difficile. De son côté TypeScript dispose d’un compilateur dédié qui permet de détecter les problèmes au moment de la compilation. Cela nous permet d’éviter les comportements inattendus de l’application.

La nature de JavaScript ne permet pas aux environnements de développement (IDE) de détecter les erreurs de typage, suggérer des améliorations, auto-compléter les mots-clés et pleins d’autres fonctionnalités.

Par la suite, je vais vous présenter quelques concepts (fonctionnalités) qui nous aident à justifier notre préférence pour TypeScript. Ce sont des concepts qui sont absents dans le JavaScript et qui pourtant sont présents dans le TypeScript.

Instances, Interfaces, Génériques
Création des instances

JavaScript est un langage orienté objet basé sur les prototypes plutôt que sur les classes. Il n’a pas des classes pour créer des objets, par conséquent il n’existe aucune syntaxe définie pour créer des instances. Par contre, dans le TypeScript il existe des classes pour créer des instances comme la plupart des langages orientés objet.

Interfaces

Il s’agit d’une fonctionnalité fondamentale absente dans le JavaScript qui nous permet d’utiliser les fonctions d’une classe de façon limitée depuis l’extérieur. Il force à une classe d’implémenter les méthodes qui sont définies dans l’interface implémentée. Il laisse la liberté entière aux développeurs de modifier l’implémentation interne de ces méthodes de manière transparente.

Génériques

Générique est une technique assez utilisée qui permet de réutiliser la même logique pour des objets instanciés de divers classes. Cela nous évite d’écrire le code redondant dans l’application. Les classes génériques sont plutôt des templates que des classes.

Utilisation du JavaScript de demain

TypeScript est connu pour être le JavaScript de demain. Par cela, je veux dire qu’il dispose déjà des nouvelles fonctionnalités ou des concepts qui sont intégrés dans les nouvelles versions de JavaScript. TypeScript Par exemple : La nouvelle version de ECMAScript ce qui est la version 6 qui sera implémentée par JavaScript. Cette version apporte un tas des nouvelles fonctionnalités et des nouvelles syntaxes.

Voici un tableau décrivant les nouveautés d’ECMAScript 6 ou JavaScript 2015 :

   

Let

“let” permet de définir les variables comme le mot-clé var mais la portée (scope) de la variable est restreinte au bloc courant.

Const

Comme le nom indique “const” est un mot-clé permettant de définir une variable dont la valeur ne change pas et la portée de const reste pareil que celle de let.

Template strings

Template strings est un nom donné au nouveau format qui permet d’écrire les chaînes de caractères plus facilement en utilisant des anti-quotes (`) au lieu des guillemets ou des apostrophes.

Par exemple : let a = `Hello, Its new JavaScript format` ;

Classes

Enfin les classes sont mises à notre disposition par ECMAScript. Comme la plupart d’autres langages de programmation orientés objet, elles nous permettent de créer des objets.

Map

Map est une collection des paires de clé et valeur.

Set

Set est un ensemble (tableau) des valeurs uniques.

For-of

For-of est une nouvelle syntaxe qui remplace foreach en ECMAScript.

Arrows

Arrow (=>) permet d’écrire les fonctions fléchées qui sont souvent utilisées pour créer des fonctions anonymes mais elles peuvent parfaitement utiliser pour remplacer des fonctions normales.

Promise

Promise est une technique pour gérer les traitements asynchrones ou les traitements dont la durée de traitements est inconnue. Il nous renvoie des valeurs (variables ou fonctions ou objets) au moment d’aboutissement d’un traitement ou son échec.

C’était une courte liste des nouvelles fonctionnalités avec leur description. À part les fonctionnalités citées au-dessous il y a d’autres fonctionnalités que ne sont pas mentionnées dans le tableau qui sont ainsi :

- définir les chaînes de caractères multi lignes en introduisant un slash « / » à la fin de chaque de ligne.

- définir les valeurs par défaut aux arguments d’une fonctions

- spreads (REST parameters)

- définir plusieurs variables à la fois

- système de modules qui nous permet d’importer ou exporter des éléments d’un module vers un autre.

Là, vous allez vous dire c’est inutile d’utiliser un autre langage que JavaScript car JavaScript dispose de toutes ces nouvelles fonctionnalités dont nous avions besoin. Oui, vous avez raison (partiellement). Mais il y a certaines choses à prendre en considération qui sont :

- ces fonctionnalités ne sont pas encore standardisées

- les navigateurs ne sont pas encore complètement prêts à accueillir ECMAScript 6 ou JavaScript 2015.

Pourtant si vous utilisez TypeScript vous n’avez pas besoin de vous inquiéter, à tout moment vous pouvez générer le JavaScript de votre choix (Vanilla JavaScript où JavaScript 2015). En outre, JavaScript 2015 manque certaines fonctionnalités qui sont présentes dans TypeScript et qui sont susceptibles d’être intégrées dans l’ECMAScript 7 qui est le successeur de ECMAScript 6 comme son nom l’indique. Donc si vous voulez utiliser le JavaScript de demain (ECMAScript 6 ou 7) et à la fois vous voulez être rassuré que votre code soit compatible avec presque tous les navigateurs web indépendamment de leurs versions dans ce cas je vous invite à utiliser TypeScript.

Installation de TypeScript sur votre système d’exploitation (OS)

L’installation de TypeScript se fait à l’aide de Node.js. Donc tout d’abord il faut installer node.js sur votre système d’exploitation s’il n’est pas déjà installé. Pour l’installer et lire sa documentation, veuillez vous diriger vers le site officiel de Node.js qui est https://nodejs.org.

N’oubliez surtout pas d’ajouter le lien des binaires Node.js dans les variables d’environnement après l’installation de Node.Js.

Après avoir installé je vous invite à saisir la commande suivante afin d’installer TypeScript sur votre OS :

npm install typescript -g

Je me permettrais d’expliquer la commande au-dessus si seulement si vous êtes nouveau à l’écosystème de Node.js sinon vous pouvez sauter ce paragraphe. Déjà npm c’est le gestionnaire des packages dans l’écosystème de Node.js. Il nous permet de télécharger les packages très facilement depuis le terminal. Ensuite le mot-clé install ce qui très explicite en soi, cela indique au npm le type d’opération que nous souhaitons effectuer est l’installation d’un package que nous le mettons juste après le mot-clé install. En l’occurrence c’est le package typescript. Le tout dernier et aussi important que les autres mots clés c’est -g qui indique au npm que nous voulons installer ce package globalement. C’est-à-dire le package typescript peut être intégré dans n’importe quel projet sans l’avoir installé dans un projet. Le mot-clé -g est entièrement optionnel.

Après l’installation de TypeScript, nous allons enfin pouvoir travailler avec TypeScript sur notre poste de travail. Pourtant tout le code que vous allez trouver dans cet article peut-être directement écrit et transpilé sur le site officiel de TypeScript et vous oblige pas de travailler avec TypeScript installé en local. L'avantage d'écrire le code sur le site officiel est que vous verrez également le code JavaScript transpilé en temps réel depuis le code TypeScript. Ce compilateur en ligne a des limites, pour en profiter de toute la puissance de TypeScript nous allons plus tard travailler sur notre poste de travail c'est pour cela nous avons installé TypeScript notre poste de travail. Voici le lien vers le compilateur en ligne de TypeScript : https://www.typescriptlang.org/playground.

Les bases de TypeScript

Etant donné que TypeScript est un langage de programmation typé, voilà pourquoi nous allons étudier les types de bases de TypeScript autrement dit les primitives.

Les primitives

Dans TypeScript, il existe plusieurs types de primitives. Voici un tableau listant les primitives avec leur description :

Primitive

Valeurs possibles

boolean

true ou false

number

Décimal,

Hexadécimale,

Binaire,

Octet

string

Chaînes de caractères

array

Tableau d’un type de donné

tuple

Tableau des paires qui sont faites des clés et des valeurs

enum

énumérateur

any

N’importe quelle valeur

void

undefined ou null

undefined

undefined

null

null

boolean

La primitive boolean (booléen) c’est la primitive la plus facile à comprendre car elle accepte soit true(vrai) soit false(faux). Voici un exemple d’un booléen :

let estVoiture : boolean = true ;

La ligne au-dessus présente la syntaxe permettant de définir les variables en TypeScript. En l’occurrence nous avons défini la variable estVoiture et lui attribuer la valeur true. Je me permettrai de décomposer la ligne au-dessus pour expliquer chaque mot-clé qu’elle contient.

let : C’est un mot-clé qui permet de déclarer une variable comme dans le Vanilla JavaScript le mot-clé var est utilisé pour déclarer une variable. Pourtant le mot-clé var peut également être utilisé au lieu de let.

estVoiture : C’est le nom de variable que nous avons choisi.

boolean : C’est le type que nous avons choisi pour la variable estVoiture.

true : C’est la valeur que nous avons attribué à la variable estVoiture.

De la même façon nous allons créer et attribuer plusieurs variables.

number

C’est un type qui peut accepter des entiers, décimaux, hexadécimaux, binaires et octets.

let entier : number = 123 ; //déclaration d’un entier
let decimal : number = 3.14; //déclaration d’un réel
let hexa : number = 0xf00a; //déclaration d’un hexadécimal
let binaire : number = 0b0011; //déclaration d’un binaire
let octet : number = 0o744; //declaration d’un octet

Dans la section au-dessus nous avons attribué toutes les valeurs que nous puissions attribuer à une variable de type number. Probablement, vous auriez dû remarquer les deux slashs qui procèdent du texte. Ces sont des commentaires. Les deux slashs indiquent au compilateur que le texte écrit après ces deux slashs doit être considéré comme des commentaires.

Comment TypeScript peut distinguer différents types des valeurs qui sont prises en compte par la primitive number ?

Les entiers et les réels sont des valeurs qui n’ont pas besoin d’indiquer au compilateur leur type explicitement car ces sont des valeurs de base 10 et le compilateur est capable de comprendre les valeurs de base 10 sans lui préciser des indications spécifiques. Alors que le compilateur de TypeScript comprend également les autres types de number mais par défaut ou implicitement il peut comprendre que des entiers et des réels. Si vous voulez attribuer une valeur hexadécimale il suffit de rajouter 0x comme suffixe avec une valeur hexadécimale. De même manière pour une valeur binaire 0b doit être utilisé comme un suffixe et 0o pour une valeur octet.

string

string ou chaîne de caractères est un type qui accepte du texte. Ou autrement dit toutes les valeurs qui sont entourées par des guillemets ou apostrophes.

let nom : string = “Jean”; // avec des guillemets
let pays : string = ‘France’; // avec des apostrophes
tableau

Un tableau est dénoté par [ ] et il peut contenir plusieurs valeurs comme les tableaux de JavaScript le font mais les tableaux de TypeScript contiennent que des valeurs d'un type défini. C'est-à-dire les tableaux ne peuvent pas contenir des entiers et des chaînes de caractères à la fois sauf si nous utilisons le type any.

let entiers : number [] = [1,5,9];
let strings : string [] = [‘salut’, ‘hi’] ;
// pour avoir un mélange des types nous allons utiliser le tableau de type any
let homme : any [] = [‘jean’, 30, 1.75];
Tuple

Tuple est aussi un tableau dont les types des éléments d’un certain nombre sont connu dès le départ. Il permet également de définir les type des éléments qu’un tableau peut recevoir.

let voitures: [string, number] = ["Renault", 307];

Au-dessus nous avons défini un tuple voiture dont les types de deux premiers éléments sont connus qui sont ainsi :

  • Le premier élément doit être de type string.

  • Le deuxième élément doit être de type number.

Le tuple voiture n’est pas limité à ces deux éléments. Il peut toujours en recevoir plusieurs d’autres éléments à une condition que les éléments devraient être soit de type string soit de type number.

let voitures: [string, number] = ["Renault", 307, 3008, “BMW”];

Dans cette ligne du code la variable voitures est toujours dans la norme car les éléments lui passaient sont soit de type string soit de type number. Par contre le compilateur va vous afficher une erreur pour la ligne suivante car cette fois-ci la variable contient un élément de type booléen ce qui n’est pas un type autorisé.

let voitures: [string, number] = ["Renault", 307, true]; // erreur

Pour résoudre ce problème il suffit de rajouter le type boolean dans la déclaration à gauche.

let voitures: [string, number, boolean] = ["Renault", 307, true];
Void

Dans le TypeScript void est bien un type qui peut accepter null ou undefined.

let age : void = null;
let taille : void = undefined;
Any

C'est un type que je vous conseille d'éviter lorsque c'est possible. Cela porte les mêmes comportements que var. Any est capable d'accepter n'importe quelle valeur. En outre, elle nous donne aucune indication sur le type de variable.

À quoi sert any dans le contexte de TypeScript ?

Bien évidemment, TypeScript est un langage typé mais ce type peut être très utile dans le contexte où nous ne connaissons pas le type à retourner. Un exemple concret : Any est utilisé pour convertir le code d'une bibliothèque qui est écrite en vanilla JavaScript. Par exemple JQuery, la bibliothèque JavaScript la plus utilisée jusqu'au jour d’aujourd’hui. Elle peut être convertie en TypeScript.. Pour convertir, TypeScript a dû introduire le type any car nous ne pouvons pas déterminer le type de variable et pour résoudre ce problème any est utilisé.

let x :any = ‘voiture’;

x = 420;
x = undefined;
x = false;

Là, nous avons attribué le mot ‘voiture à la variable x. Puis nous avons réattribué plusieurs fois la même variable en changeant chaque fois le type de donné de la valeur en attribution. Alors que c'est impossible d'effectuer les opérations sur une variable qui est de type autres que any.

Undefined

Undefined est à la fois une valeur et un type. Les variables de type undefined sont pas très utiles comparant avec d'autres types de variables.

let moteur : undefined = undefined;

Null

Null est aussi à la fois une valeur et un type de même manière que Undefined. Il accepte que null comme valeur.

let volant : null = null;

Note : undefined et null sont des sous-types de tout les autres types hormis never qui sera expliqué ci-dessous. Cela veut dire toutes les variables peuvent être assigné à null ou undefined hormis lorsque le mode strictNullChecks est activé.

Never

Never est un type utilisé pour des cas très rares. Il est utilisé pour un code qui ne peut pas être atteint. Never est antonyme de any.

let jamais : never = never;

Dans quel cas utilise-t-on “never” ?

Lorsqu'un traitement consomme de temps sans limite dans ce cas-là il est préférable de renvoyer une variable de type never.

Nous ne sommes pas obligés de préciser explicitement le type de variable lors d'une affectation. TypeScript est capable de déterminer le type de variable.

let train = ‘tgv’;

Nous n’avons pas précisé le type de variable train pourtant TypeScript aurait déterminé le type de variable à l'aide de l'inférence de types.

L'inférence de types : c'est une technique qui permet un compilateur de déterminer le type de variable sans que son type soit explicitement cité.

Je ne vous conseille pas de déclarer les variables sans avoir déclaré leur type car plus votre code est explicite mieux c'est. Ça reste un avis personnel.

Enum

Enum est un type de données spécial qui contient des alias pour les valeurs numériques qui se déclare ainsi :

enum direction {
    Haut,
    Droit,
    Bas,
    Gauche
}

Dans l’enum au-dessus nous avons précisé des alias séparés par des virgules mais nous n'avons pas précisé des entiers correspondants. Lorsque les entiers correspondants ne sont pas précisé TypeScript attribue des entiers aux valeurs dans l'ordre croissant débutant de 0. C'est-à-dire alias haut est égal à 0, alias droit est égal à 1 et ainsi de suite...

enum direction {
    Haut = 1,
    Droit = 2,
    Bas = 5,
    Gauche = 7
}

Cette fois-ci nous avons attribué des valeurs aléatoires aux alias mais toutes ces valeurs sont bien uniques et aucune valeur à été attribuée plusieurs fois au même alias.

Depuis la version 2.4 de TypeScript nous pouvons également attribuer des chaînes de caractères (string) aux alias. Auparavant il était possible d'attribuer que des entiers aux enum ce qui est le cas pour la plupart des langages de programmations orienté objet. Voici un exemple :

enum Direction {
    Haut = 'up',
    Droit = "right"
}

Boucles

La syntaxe des boucles est la même que JavaScript 2015. Nous utilisons la syntaxe for…of qui va nous permettre de boucler sur des tableaux. Dans le vanilla JavaScript nous utilisons for…in qui nous fournit des clés alors que la syntaxe for…of nous fournit des valeurs d’un tableau. Vous pouvez également utiliser for…in dans le TypeScript.

let couleurs: string[] = ["rouge", "vert", "bleu"];

for (let couleurIndex in couleurs) {
    console.log(couleurIndex);
}

 
for(let couleur of couleurs){
           	console.log(couleur);
}

La première boucle for…in va afficher dans la console le résultat suivant :

0

1

2

Et la boucle for…of va afficher le résultat suivant :

rouge

vert

bleu

Fonctions

Les fonctions en TypeScript profitent du côté typé de TypeScript c'est-à-dire nous savons dès le départ le type de valeur qui sera retourné par la fonction alors qu’en JavaScript nous ne pouvons pas savoir ni le type de valeur retourné par la fonction ni les types des paramètres qu'elles acceptent. Voici un exemple d'une fonction TypeScript :

function addition : number (number x, number y) {
           	return x + y;
}

Dans l'exemple du code donné au-dessus le nom de fonction est addition et le type à retourner est number qui se trouvent avant les parenthèses alors que dans la plupart des langages orienté objet le type doit être précisé avant le nom de la fonction.

Vous n’êtes pas obligé préciser le type à retourner comme pour les variables, ici aussi l’inférence de types se charge à déterminer le type à retourner. Plus tard je vous citerai des cas où l'inférence de types n’arrive pas déterminer les types à retourner.

Il existe plusieurs façons de déclarer des fonctions en TypeScript comme JavaScript.

Déclaration d'une fonction en tant qu'une variable

let nomComplet = function : string  (string nom, string prenom) {
        	return ‘${nom + prenom}’;
}

La variable nomComplet est désormais une fonction et elle peut être appelée de même manière que nous appelons une fonction. nomComplet(‘Dupont’, ‘François’) ;.

Si jamais vous voulez faire une fonction qui exécute des opérations sans vouloir retourner une valeur depuis la fonction. Il suffit de mettre void comme le type à retourner.

Fonctions avec des paramètres optionnel

En TypeScript nous avons la possibilité de rendre des paramètres d'une fonction optionnels en les donnant une valeur par défaut.

enum TemperatureType {
    Celsius,
    Fahrenheit
}
function getTemperature(typeDeTemperature: TemperatureType = TemperatureType.Celsius): number {
    let temperatureEnCelsius: number = 20;
    if (typeDeTemperature == TemperatureType.Celsius) {
        return temperatureEnCelsius;
    } else {
        return temperatureEnCelsius * 1.8 + temperatureEnCelsius;
    }
}

Dans l’exemple la fonction getTemperature a un paramètre typeDeTemperature qui est enum TemperatureType. Ce paramètre a une valeur par défaut ce qui est TemperatureType.Celsius . Le fait de définir des valeurs par défaut dans les parenthèses des fonctions rendent les paramètres optionnels. Désormais nous pouvons appeler cette fonction sans ou avec un argument. Dans l’absence de l’argument elle utilisera la valeur par défaut définie.

Note : Si votre fonction a plusieurs paramètres optionnels aussi dans ce cas les paramètres optionnels doivent se situer après les arguments obligatoires.

Conclusion

Le but de cet article est de vous introduire les bases de TypeScript et montrer les avantages d'utiliser TypeScript plutôt que JavaScript pour vos applications. Dans le prochain article je vais vous présenter les concepts de TypeScript que je n'ai pas pu présenter dans cet article tels que les classes, les interfaces, les types complexe, fonctions surchargées et d'autres concepts ce qui vous feras passer du niveau débutant au niveau intermédiaire. J'espère que cet article vous donnera l’envie d’utiliser le TypeScript.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels