Types

Les types les plus fréquents

boolean

1
let value: boolean;
2
value = true;
Copied!

number

1
let value: number;
2
value = 10;
3
value = 10.3;
4
value = Infinity;
5
value = NaN;
Copied!

string

1
let value: string;
2
value = 'Foo BAR';
Copied!

array

1
let value: string[];
2
​
3
value = ['Angular', 'Python'];
4
​
5
value.push(42); // error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
Copied!

enum

1
enum Role {
2
Coder,
3
Developer
4
}
5
​
6
let role: Role;
7
​
8
role = Role.Developer;
9
​
10
console.log(role); // 1
11
console.log(Role[role]); // Developer
Copied!
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

1
enum Role {
2
Coder = 'coder',
3
Developer = 'developer'
4
}
5
​
6
let role: Role;
7
​
8
role = Role.Developer;
9
​
10
console.log(role); // developer
Copied!

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 :
1
const sendMessage = (email: string, message: string, subject?: string) => {
2
console.log(`${email}: [${subject}] ${message}`);
3
};
4
​
5
sendMessage(); // error TS2554: Expected 2-3 arguments, but got 0.
6
​
7
sendMessage('[email protected]', 'Help!'); // [email protected]: [undefined] Help!
8
sendMessage('[email protected]', 'Help!', 'Coaching'); // [email protected]: [Coaching] Help!
Copied!
... ou en spécifiant une valeur par défaut :
1
const sendMessage = (email: string, message: string, subject: string = null) => {
2
console.log(`${email}: [${subject}] ${message}`);
3
};
4
​
5
sendMessage('[email protected]', 'Help!'); // [email protected]: [null] Help!
Copied!
​