Académique Documents
Professionnel Documents
Culture Documents
ES6 TypeScript 01 PDF
ES6 TypeScript 01 PDF
Framework Angular a été conçu pour bénéficier de cette nouvelle version de JavaScript.
ES6 a atteint son état final en 2015. Il est donc supporté par les navigateurs modernes, mais
il y a encore des navigateurs qui la supportent seulement partiellement. Et bien sûr, avec une
spécification maintenant annuelle (ES2016, ES2017, etc.)
Un transpileur prend du code source ES6 en entrée et génère du code ES5, qui peut tourner
dans n’importe quel navigateur.
Déclaration
avec let
Déclaration
avec let
Déclaration
avec const
Déclaration
avec const
Simplification
Affectations en version ES5
déstructurées
en version ES6
Or
Affectations
déstructurées
Valable aussi avec des objets imbriques :
{ pony, position }
Ceci assigne la position retournée par la méthode à la
variable position, et le poney a la variable pony.
Si on passes moins d’arguments que déclarés par la fonction, les paramètres manquants auront la valeur undefined.
Les paramètres optionnels ont la plupart du temps une valeur par défaut. L’operateur OR (||) va retourner
l’opérande de droite si celui de gauche n’est pas fourni.
ES6 offre désormais une façon plus formelle de déclarer des paramètres optionnels, des la déclaration de la fonction :
La valeur par défaut peut être un appel d’une fonction, voir l’exemple suivant :
ES6 offre désormais une façon plus formelle de déclarer des paramètres optionnels, des la déclaration de la fonction :
La valeur par défaut peut être un appel d’une fonction, voir l’exemple suivant :
ES6 propose une syntaxe bien meilleure, grâce au rest operator … ("opérateur de reste").
Une des fonctionnalités les plus emblématiques, et qui va largement être utilisée dans l’écriture d’applications
Angular : ES6 introduit les classes en JavaScript !
Exemple :
Les déclarations de classes, contrairement aux déclarations de fonctions, ne sont pas hoisted ("remontées"), donc
tu dois déclarer une classe avant de l’utiliser.
Classes
Il a toujours manqué en JavaScript une façon standard de ranger ses fonctions dans un espace de
nommage, et de charger dynamiquement du code. Node.js a été un leader sur le sujet,
ES5
Les types de TypeScript
• Par convention les fichiers TypeScript ont l’extension .ts et seront compilés en
JavaScript standard.
• La syntaxe pour ajouter des informations de type en TypeScript est basique:
let variable : type;
• Les différents types sont simples à retenir :
const poneyNumber : number = 0;
const poneyName: string = ‘Rainbow Dash’;
Les types de TypeScript
Boolean #
let isDone: boolean = false;
Number #
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
String #
let color: string = "blue";
color = 'red';
Les types de TypeScript
Array #
let list: number[] = [1, 2, 3]:
Tuple #
// Declare a tuple type
let x: [string, number];
// Initialize it
x = ["hello", 10]; // OK
Enum #
enum Color {Red, Green, Blue}
let c: Color = Color.Green;
enum Color {Red = 1, Green, Blue}
let c: Color = Color.Green;
Or,
enum Color {Red = 1, Green = 2, Blue = 4}
let c: Color = Color.Green;
enum Color {Red = 1, Green, Blue}
let colorName: string = Color[2];
console.log(colorName); // Displays 'Green' as its value is 2 above
Les types de TypeScript
Any #
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // okay, definitely a boolean
interface HasScore {
score: number;
}
interface PonyModel {
name: string;
speed: number;
}
const pony: PonyModel = { name: 'Light Shoe', speed: 56 };
Les types de TypeScript
Void #
void is a little like the opposite of any
Object #
object is a type that represents the non-primitive
type, i.e. anything that is not number, string, boolean,
bigint, symbol, null, or undefined.
create(42); // Error
create("string"); // Error
create(false); // Error
create(undefined); // Error
TYPES DE BASES ARRAY
Notation avec les crochets ou le mot clef Array
let tableauNombres : number[];
let tableauNombres : Array<number>;
Initialisation
let tableauNombres : number[] = [];
let tableauNombres : number[] = [76, 56];
move(distanceInMeters = 5) { sam.move();
console.log("Slithering..."); tom.move(34);
super.move(distanceInMeters);
}
}
Classes #
class Animal { let animal = new Animal("Goat");
private name: string; let rhino = new Rhino();
let employee = new Employee("Bob");
constructor(theName: string) { this.name = theName; }
} animal = rhino;
animal = employee; // Error: 'Animal' and 'Employee' are
not compatible
class Rhino extends Animal {
constructor() { super("Rhino"); }
}
class Employee {
private name: string;
constructor(theName: string) { this.name = theName; }
}
Classes #
class Person { public getElevatorPitch() {
protected name: string; return `Hello, my name is ${this.name} and I work
in ${this.department}.`;
constructor(name: string) { this.name = name; } }
} }