Types
Les types les plus fréquents
boolean
let value: boolean;
value = true;
number
let value: number;
value = 10;
value = 10.3;
value = Infinity;
value = NaN;
string
let value: string;
value = 'Foo BAR';
array
let value: string[];
value = ['Angular', 'Python'];
value.push(42); // error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
enum
enum Role {
Coder,
Developer
}
let role: Role;
role = Role.Developer;
console.log(role); // 1
console.log(Role[role]); // Developer
Comme dans de nombreux langages, il est préférable d'éviter les enums à auto-incrément pour les raisons suivantes :
Ce type d'enums décourage le refactoring car il est nécessaire de "rebuild" toutes les applications et librairies qui en dépendent. (On revient aux problèmes de compatibilité binaire etc...)
Le debug est moins pratique.
Il faut absolument passer par un serializer/deserializer pour communiquer la valeur avec d'autres applications, services etc...
string enum
enum Role {
Coder = 'coder',
Developer = 'developer'
}
let role: Role;
role = Role.Developer;
console.log(role); // developer
Number, String, Boolean and Object
N'utilisez jamais les types suivants : Number, String, Boolean et Object.
Ce ne sont pas les types primitifs. Considérez-les comme "legacy".
Au lieu de Object
, utilisez le type TypeScript object
.
Paramètres optionnels
Contrairement à l'ECMAScript où tous les paramètres sont considérés optionnels, en TypeScript, les paramètres doivent être explicitement indiqués comme optionnels avec la syntaxe suivante :
const sendMessage = (email: string, message: string, subject?: string) => {
console.log(`${email}: [${subject}] ${message}`);
};
sendMessage(); // error TS2554: Expected 2-3 arguments, but got 0.
sendMessage('contact@wishtack.com', 'Help!'); // contact@wishtack.com: [undefined] Help!
sendMessage('contact@wishtack.com', 'Help!', 'Coaching'); // contact@wishtack.com: [Coaching] Help!
... ou en spécifiant une valeur par défaut :
const sendMessage = (email: string, message: string, subject: string = null) => {
console.log(`${email}: [${subject}] ${message}`);
};
sendMessage('contact@wishtack.com', 'Help!'); // contact@wishtack.com: [null] Help!
Dernière mise à jour