SlideShare une entreprise Scribd logo
1  sur  21
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
TypeScript
Veille technologique : 2018Préparer et élaborer par : Mahmoud Nbet
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
introduction
• Le « TypeScript » est un langage de
programmation open-source développé par
Microsoft.
• Le langage se présente comme un pré
processeur du JavaScript
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
FonctionnalitésetAvantages
• Typage statique/ Interface
• Améliorer le système de
classe
• Namespace
• Modules
• Décorateurs
• Code mieux structuré et
mieux sécurisé
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Siteoficiel
https://www.typescriptlang.org
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
ChoixduAngular
• Le Framework le plus populaire Angular est
écrit en « TypeScript ».
Bien que vous puissiez également
utiliser JavaScript avec Angular, la
plupart des tutoriels que vous
trouverez pour le Framework
sont écrits en TypeScript .
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Installation
• Si vous voulez utiliser « TypeScript » pour vos projets,
vous pouvez l’installer via NPM.
npm i -g typescript
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Compilation
tsc index.ts
• Cette installation vous donnera accès à la commande
« tsc » qui vous permettra de compiler votre code en
JavaScript (ES3, ES5 ou ES2015).
• La commande ci-dessus vous donnera un fichier
nommé index.js
tsc index.ts main.ts
tsc * .ts [--watch] [--target 'es5']
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
tsconfig.json
{
"compilerOptions":{
"target": "es5",
"pretty": true,
"outDir": "./build"
},
"files": [
"demo.ts"
],
"excluse": ["node_modules"]
}
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Typagestatique
• C’est la fonctionnalité de « TypeScript » qui
vous permet de déclarer les types de
variables.
• Le compilateur s'assure que les variables ont
les bons types de valeurs.
Vous pouvez déclarer un type en
ajoutant un deux-points et le nom
du type
let num: number = 123
let str: string = ‘abc’
let is: boolean = true
let x: any = ‘x’ let varName: type = value
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Typagestatique:LesTableaux
• Avec TypeScript, vous pouvez créer des
tableaux en utilisant des parenthèses en tant
que tels:
var array: string [] = ['chien', 'chat'];
var first: string = tableau [0];
var array: Array<string> = ['chien', 'chat'];
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
LesInterfaces
• une interface vous permet de vérifier les
combinaisons de variables pour s'assurer
qu'elles vont ensemble.
Les interfaces ne sont pas
traduites en JavaScript. leur
seul but est d'aider les
développeurs
interface Food {
nom: string;
calories: number;
category?: number;
}
Les attributs optionnels sont préfixés par un « ? »
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Aveclesfonctions
• Avec « TypeScript » Vous pouvez demander à
une fonction d'attendre ou retourner un
« type » qui correspond à vos besoins, pour
vous assurer que les bonnes propriétés seront
toujours disponibles.
fonction speak (food: Food): void {
console.log (food.name + "contient" + food.calories + "calories");
}
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Aveclesfonctions«2»
• Il est possible d’initialiser les paramètres, ou
d’ajouter des paramètres optionnels.
Mais non les deux à la fois
fonction myFunction (
food: Food,
show:boolean = false,
otherParam?: Type
): Food {
...
return food;
}
let myFunction = (
food: Food,
show:boolean = false,
otherParam?: Type
): Food => {
...
return food;
}
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Lesclasses
• Les classes de « TypeScript » fonctionnent
essentiellement de la même manière que les
classes d'autres langages orientés objet.
Depuis que la mise à jour
d'ECMAScript 2015 a été
publiée, les classes sont
maintenant natives de
JavaScript, mais les règles
pour les classes sont un
peu plus strictes en
TypeScript.
class Menu {
private title: string ;
private items: Array<string> ;
private pages: number ;
constructor(){}
public getItmes(): Array<string> {
return this.itmes;
}
}
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Lesclasses
class Menu {
// public; private; proteted
private _title: string ;
private items: Array<string> ;
private pages: number ;
constructor(){}
get title():string {
return this._title || ‘plz add a title’;
}
set title(t: string):void {
this._title = t;
}
}
let m = new Menu();
m.title = ‘Menu title’;
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Générique
• Les génériques sont des modèles réutilisables
qui permettent à des fonctions uniques
d'accepter des arguments de types différents.
function genericFunc<T>(argument: T): T[] {
var arrayOfT: T[] = [];
arrayOfT.push(argument);
return arrayOfT;
}
var arrayFromString = genericFunc<string>("beep");
Le "T" suivant le nom de la fonction indique un
générique. Lorsque la fonction est appelée, toutes les
instances de "T" seront remplacées par les types fournis:
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
LesNamespaces
• Les « namespaces » vous permettent
d'organiser les variables dans un groupe
donné afin d'éviter les problèmes
d'écrasement des variables.
namespace myNS {
export let var1 = 3
let var2 = 4
export class Demo { }
}
myNS.var1 // 3
myNS.var2 // Erreur, cela n'existe pas en dehors du module
let d = new myNS.Demo() // Objet de type myNS.Demo
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Lesmodules
• Les modules se présentent comme des
namespaces que l'on va pouvoir isoler dans un
fichier séparé. Le principe est relativement
similaire.
// demo.ts
export let var1 = 3
let var2 = 4
export class Demo { }
// index.ts
import { var1, Demo } from './demo'
var1 // 3
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Fichiersdedéclarationdestypestiers
• Lorsque vous devez utiliser une bibliothèque
destinée à l'origine au JavaScript courant, vous
devez appliquer un fichier de déclaration pour
le rendre compatible avec TypeScript. Les
fichiers de déclaration, qui ont l'extension
.d.ts, contiennent des informations sur les
bibliothèques et leurs API.
Vous pouvez utiliser « Typings » , un module Node.js
pratique pour gérer vos définitions TypeScript.
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit
Lesdécorateurs(decorators)
Un décorateur est une fonction qui modifie une
classe JavaScript pour y ajouter des
métadonnées
@component({
selector: '.toto'
})
class Toto {
options;
constructor (options){
this.options = options;
}
}
function component(options){
return function (target) {
console.log(options, target);
}
}
© Proxym-IT
Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia
Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90
http://www.proxym-it.com
http://twitter.com/proxymit

Contenu connexe

Similaire à TypeScript

Cyres2 formation-les-reseaux-architectures-mise-en-oeuvre-et-perspectives
Cyres2 formation-les-reseaux-architectures-mise-en-oeuvre-et-perspectivesCyres2 formation-les-reseaux-architectures-mise-en-oeuvre-et-perspectives
Cyres2 formation-les-reseaux-architectures-mise-en-oeuvre-et-perspectivesCERTyou Formation
 
Titaa formation-titanium-appcelerator
Titaa formation-titanium-appceleratorTitaa formation-titanium-appcelerator
Titaa formation-titanium-appceleratorCERTyou Formation
 
Zen05 formation-zend-framework-2-les-bases
Zen05 formation-zend-framework-2-les-basesZen05 formation-zend-framework-2-les-bases
Zen05 formation-zend-framework-2-les-basesCERTyou Formation
 
Aspws formation-asp-net-xml-et-services-web
Aspws formation-asp-net-xml-et-services-webAspws formation-asp-net-xml-et-services-web
Aspws formation-asp-net-xml-et-services-webCERTyou Formation
 
Fogia formation-fog-deploiement-d-images-perfectionnement
Fogia formation-fog-deploiement-d-images-perfectionnementFogia formation-fog-deploiement-d-images-perfectionnement
Fogia formation-fog-deploiement-d-images-perfectionnementCERTyou Formation
 
Fogin formation-fog-deploiement-d-images-les-bases
Fogin formation-fog-deploiement-d-images-les-basesFogin formation-fog-deploiement-d-images-les-bases
Fogin formation-fog-deploiement-d-images-les-basesCERTyou Formation
 
Cb69 g formation-tcp-ip-en-environnement-z-os-atelier-d-implementation
Cb69 g formation-tcp-ip-en-environnement-z-os-atelier-d-implementationCb69 g formation-tcp-ip-en-environnement-z-os-atelier-d-implementation
Cb69 g formation-tcp-ip-en-environnement-z-os-atelier-d-implementationCERTyou Formation
 
Aspn2 formation-asp-net-et-web-2-0
Aspn2 formation-asp-net-et-web-2-0Aspn2 formation-asp-net-et-web-2-0
Aspn2 formation-asp-net-et-web-2-0CERTyou Formation
 
Wi8 mt formation-windows-8-developpement-d-applications-metro
Wi8 mt formation-windows-8-developpement-d-applications-metroWi8 mt formation-windows-8-developpement-d-applications-metro
Wi8 mt formation-windows-8-developpement-d-applications-metroCERTyou Formation
 
Zl00 g formation-bootcamp-z-vm-et-linux
Zl00 g formation-bootcamp-z-vm-et-linuxZl00 g formation-bootcamp-z-vm-et-linux
Zl00 g formation-bootcamp-z-vm-et-linuxCERTyou Formation
 
Nuxad formation-nuxeo-platform-administration
Nuxad formation-nuxeo-platform-administrationNuxad formation-nuxeo-platform-administration
Nuxad formation-nuxeo-platform-administrationCERTyou Formation
 
Le module Flex Layout du CSS3
Le module Flex Layout du CSS3Le module Flex Layout du CSS3
Le module Flex Layout du CSS3Mahmoud Nbet
 
Sench formation-sencha-touch
Sench formation-sencha-touchSench formation-sencha-touch
Sench formation-sencha-touchCERTyou Formation
 
Symfi formation-symfony-les-bases
Symfi formation-symfony-les-basesSymfi formation-symfony-les-bases
Symfi formation-symfony-les-basesCERTyou Formation
 
Zv10 g formation-ibm-z-vm-et-linux-pour-zseries-connectivite-et-gestion-du-sy...
Zv10 g formation-ibm-z-vm-et-linux-pour-zseries-connectivite-et-gestion-du-sy...Zv10 g formation-ibm-z-vm-et-linux-pour-zseries-connectivite-et-gestion-du-sy...
Zv10 g formation-ibm-z-vm-et-linux-pour-zseries-connectivite-et-gestion-du-sy...CERTyou Formation
 
M22689 formation-mettre-a-jour-ses-competences-vers-windows-8-niveau-mcsa
M22689 formation-mettre-a-jour-ses-competences-vers-windows-8-niveau-mcsaM22689 formation-mettre-a-jour-ses-competences-vers-windows-8-niveau-mcsa
M22689 formation-mettre-a-jour-ses-competences-vers-windows-8-niveau-mcsaCERTyou Formation
 
Symfa formation-symfony-perfectionnement
Symfa formation-symfony-perfectionnementSymfa formation-symfony-perfectionnement
Symfa formation-symfony-perfectionnementCERTyou Formation
 
Petit potam slides-rtfm-ossir
Petit potam slides-rtfm-ossirPetit potam slides-rtfm-ossir
Petit potam slides-rtfm-ossirLionelTopotam
 

Similaire à TypeScript (20)

Cyres2 formation-les-reseaux-architectures-mise-en-oeuvre-et-perspectives
Cyres2 formation-les-reseaux-architectures-mise-en-oeuvre-et-perspectivesCyres2 formation-les-reseaux-architectures-mise-en-oeuvre-et-perspectives
Cyres2 formation-les-reseaux-architectures-mise-en-oeuvre-et-perspectives
 
Titaa formation-titanium-appcelerator
Titaa formation-titanium-appceleratorTitaa formation-titanium-appcelerator
Titaa formation-titanium-appcelerator
 
Zen05 formation-zend-framework-2-les-bases
Zen05 formation-zend-framework-2-les-basesZen05 formation-zend-framework-2-les-bases
Zen05 formation-zend-framework-2-les-bases
 
Aspws formation-asp-net-xml-et-services-web
Aspws formation-asp-net-xml-et-services-webAspws formation-asp-net-xml-et-services-web
Aspws formation-asp-net-xml-et-services-web
 
Fogia formation-fog-deploiement-d-images-perfectionnement
Fogia formation-fog-deploiement-d-images-perfectionnementFogia formation-fog-deploiement-d-images-perfectionnement
Fogia formation-fog-deploiement-d-images-perfectionnement
 
Fogin formation-fog-deploiement-d-images-les-bases
Fogin formation-fog-deploiement-d-images-les-basesFogin formation-fog-deploiement-d-images-les-bases
Fogin formation-fog-deploiement-d-images-les-bases
 
Cb69 g formation-tcp-ip-en-environnement-z-os-atelier-d-implementation
Cb69 g formation-tcp-ip-en-environnement-z-os-atelier-d-implementationCb69 g formation-tcp-ip-en-environnement-z-os-atelier-d-implementation
Cb69 g formation-tcp-ip-en-environnement-z-os-atelier-d-implementation
 
Aspn2 formation-asp-net-et-web-2-0
Aspn2 formation-asp-net-et-web-2-0Aspn2 formation-asp-net-et-web-2-0
Aspn2 formation-asp-net-et-web-2-0
 
Xen formation-xen
Xen formation-xenXen formation-xen
Xen formation-xen
 
Wi8 mt formation-windows-8-developpement-d-applications-metro
Wi8 mt formation-windows-8-developpement-d-applications-metroWi8 mt formation-windows-8-developpement-d-applications-metro
Wi8 mt formation-windows-8-developpement-d-applications-metro
 
Zl00 g formation-bootcamp-z-vm-et-linux
Zl00 g formation-bootcamp-z-vm-et-linuxZl00 g formation-bootcamp-z-vm-et-linux
Zl00 g formation-bootcamp-z-vm-et-linux
 
Nuxad formation-nuxeo-platform-administration
Nuxad formation-nuxeo-platform-administrationNuxad formation-nuxeo-platform-administration
Nuxad formation-nuxeo-platform-administration
 
Le module Flex Layout du CSS3
Le module Flex Layout du CSS3Le module Flex Layout du CSS3
Le module Flex Layout du CSS3
 
Sench formation-sencha-touch
Sench formation-sencha-touchSench formation-sencha-touch
Sench formation-sencha-touch
 
Symfi formation-symfony-les-bases
Symfi formation-symfony-les-basesSymfi formation-symfony-les-bases
Symfi formation-symfony-les-bases
 
web application security
web application securityweb application security
web application security
 
Zv10 g formation-ibm-z-vm-et-linux-pour-zseries-connectivite-et-gestion-du-sy...
Zv10 g formation-ibm-z-vm-et-linux-pour-zseries-connectivite-et-gestion-du-sy...Zv10 g formation-ibm-z-vm-et-linux-pour-zseries-connectivite-et-gestion-du-sy...
Zv10 g formation-ibm-z-vm-et-linux-pour-zseries-connectivite-et-gestion-du-sy...
 
M22689 formation-mettre-a-jour-ses-competences-vers-windows-8-niveau-mcsa
M22689 formation-mettre-a-jour-ses-competences-vers-windows-8-niveau-mcsaM22689 formation-mettre-a-jour-ses-competences-vers-windows-8-niveau-mcsa
M22689 formation-mettre-a-jour-ses-competences-vers-windows-8-niveau-mcsa
 
Symfa formation-symfony-perfectionnement
Symfa formation-symfony-perfectionnementSymfa formation-symfony-perfectionnement
Symfa formation-symfony-perfectionnement
 
Petit potam slides-rtfm-ossir
Petit potam slides-rtfm-ossirPetit potam slides-rtfm-ossir
Petit potam slides-rtfm-ossir
 

TypeScript

  • 1. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit TypeScript Veille technologique : 2018Préparer et élaborer par : Mahmoud Nbet
  • 2. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit introduction • Le « TypeScript » est un langage de programmation open-source développé par Microsoft. • Le langage se présente comme un pré processeur du JavaScript
  • 3. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit FonctionnalitésetAvantages • Typage statique/ Interface • Améliorer le système de classe • Namespace • Modules • Décorateurs • Code mieux structuré et mieux sécurisé
  • 4. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Siteoficiel https://www.typescriptlang.org
  • 5. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit ChoixduAngular • Le Framework le plus populaire Angular est écrit en « TypeScript ». Bien que vous puissiez également utiliser JavaScript avec Angular, la plupart des tutoriels que vous trouverez pour le Framework sont écrits en TypeScript .
  • 6. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Installation • Si vous voulez utiliser « TypeScript » pour vos projets, vous pouvez l’installer via NPM. npm i -g typescript
  • 7. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Compilation tsc index.ts • Cette installation vous donnera accès à la commande « tsc » qui vous permettra de compiler votre code en JavaScript (ES3, ES5 ou ES2015). • La commande ci-dessus vous donnera un fichier nommé index.js tsc index.ts main.ts tsc * .ts [--watch] [--target 'es5']
  • 8. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit tsconfig.json { "compilerOptions":{ "target": "es5", "pretty": true, "outDir": "./build" }, "files": [ "demo.ts" ], "excluse": ["node_modules"] }
  • 9. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Typagestatique • C’est la fonctionnalité de « TypeScript » qui vous permet de déclarer les types de variables. • Le compilateur s'assure que les variables ont les bons types de valeurs. Vous pouvez déclarer un type en ajoutant un deux-points et le nom du type let num: number = 123 let str: string = ‘abc’ let is: boolean = true let x: any = ‘x’ let varName: type = value
  • 10. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Typagestatique:LesTableaux • Avec TypeScript, vous pouvez créer des tableaux en utilisant des parenthèses en tant que tels: var array: string [] = ['chien', 'chat']; var first: string = tableau [0]; var array: Array<string> = ['chien', 'chat'];
  • 11. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit LesInterfaces • une interface vous permet de vérifier les combinaisons de variables pour s'assurer qu'elles vont ensemble. Les interfaces ne sont pas traduites en JavaScript. leur seul but est d'aider les développeurs interface Food { nom: string; calories: number; category?: number; } Les attributs optionnels sont préfixés par un « ? »
  • 12. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Aveclesfonctions • Avec « TypeScript » Vous pouvez demander à une fonction d'attendre ou retourner un « type » qui correspond à vos besoins, pour vous assurer que les bonnes propriétés seront toujours disponibles. fonction speak (food: Food): void { console.log (food.name + "contient" + food.calories + "calories"); }
  • 13. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Aveclesfonctions«2» • Il est possible d’initialiser les paramètres, ou d’ajouter des paramètres optionnels. Mais non les deux à la fois fonction myFunction ( food: Food, show:boolean = false, otherParam?: Type ): Food { ... return food; } let myFunction = ( food: Food, show:boolean = false, otherParam?: Type ): Food => { ... return food; }
  • 14. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Lesclasses • Les classes de « TypeScript » fonctionnent essentiellement de la même manière que les classes d'autres langages orientés objet. Depuis que la mise à jour d'ECMAScript 2015 a été publiée, les classes sont maintenant natives de JavaScript, mais les règles pour les classes sont un peu plus strictes en TypeScript. class Menu { private title: string ; private items: Array<string> ; private pages: number ; constructor(){} public getItmes(): Array<string> { return this.itmes; } }
  • 15. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Lesclasses class Menu { // public; private; proteted private _title: string ; private items: Array<string> ; private pages: number ; constructor(){} get title():string { return this._title || ‘plz add a title’; } set title(t: string):void { this._title = t; } } let m = new Menu(); m.title = ‘Menu title’;
  • 16. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Générique • Les génériques sont des modèles réutilisables qui permettent à des fonctions uniques d'accepter des arguments de types différents. function genericFunc<T>(argument: T): T[] { var arrayOfT: T[] = []; arrayOfT.push(argument); return arrayOfT; } var arrayFromString = genericFunc<string>("beep"); Le "T" suivant le nom de la fonction indique un générique. Lorsque la fonction est appelée, toutes les instances de "T" seront remplacées par les types fournis:
  • 17. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit LesNamespaces • Les « namespaces » vous permettent d'organiser les variables dans un groupe donné afin d'éviter les problèmes d'écrasement des variables. namespace myNS { export let var1 = 3 let var2 = 4 export class Demo { } } myNS.var1 // 3 myNS.var2 // Erreur, cela n'existe pas en dehors du module let d = new myNS.Demo() // Objet de type myNS.Demo
  • 18. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Lesmodules • Les modules se présentent comme des namespaces que l'on va pouvoir isoler dans un fichier séparé. Le principe est relativement similaire. // demo.ts export let var1 = 3 let var2 = 4 export class Demo { } // index.ts import { var1, Demo } from './demo' var1 // 3
  • 19. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Fichiersdedéclarationdestypestiers • Lorsque vous devez utiliser une bibliothèque destinée à l'origine au JavaScript courant, vous devez appliquer un fichier de déclaration pour le rendre compatible avec TypeScript. Les fichiers de déclaration, qui ont l'extension .d.ts, contiennent des informations sur les bibliothèques et leurs API. Vous pouvez utiliser « Typings » , un module Node.js pratique pour gérer vos définitions TypeScript.
  • 20. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit Lesdécorateurs(decorators) Un décorateur est une fonction qui modifie une classe JavaScript pour y ajouter des métadonnées @component({ selector: '.toto' }) class Toto { options; constructor (options){ this.options = options; } } function component(options){ return function (target) { console.log(options, target); } }
  • 21. © Proxym-IT Technopole de Sousse / BP 184 – 4051 Sousse, Tunisia Phone : +216 73 82 12 22 / +33 4 34 08 02 48 Fax : +216 73 82 03 90 http://www.proxym-it.com http://twitter.com/proxymit

Notes de l'éditeur

  1. Les erreurs sont détectés lors du compilation
  2. Quiconque veut profiter pleinement de la plate-forme de développement Angular et similaire sera mieux connaître TypeScript.
  3. https://www.typescriptlang.org/play/index.html https://babeljs.io/ TypeScript est similaire à CoffeeScript , un autre langage qui compile en JavaScript, mais le premier est plus flexible que le second grâce au typage statique .
  4. # compiler un fichier > tsc test.ts #watch > tsc -w # afficher les erreurs d'une manière correct > tsc -w --pretty demo.ts # compiler en es5 > tsc -w --pretty demo.ts --target 'es5'
  5. Vous pouvez lire tous les types de données disponibles dans les documents TypeScript : http://www.typescriptlang.org/docs/handbook/basic-types.html