Alias de Type
Ceci est la traduction en français d'une spécification de TypeScript #957 en cours d'implémentation.
Les alias de type permettent d'associer des noms à des types quelconques.
Les alias de type sont particulièrement utiles pour nommer les types qui ne sont pas des types objets, comme les unions de types ou les types primitifs.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 type StringOrNumber = string | number; type Text = string | string[]; type Point = [number, number]; type NameLookup = Dictionary<string, Person>; type LinkedList = { data: string; next: LinkedList; }; var fullName: { first: string; middle: string; last: string; }; type Name = typeof fullName;
Les alias de type peuvent se substituer aux instanciations de types génériques (tel que pour le type NameLookup ci-dessus), mais ils ne peuvent pas eux-même avoir de paramètres de type.
Tout comme les déclarations d'interface, les alias de type déclarent uniquement des types et non des valeurs. Par exemple :
Une erreur est survenue sur l'instanciation (new) de StringList() parce qu'il n'y a pas de méthode constructeur nommé StringList. Seul un type ayant ce nom existe. Pour avoir les deux, une sous-classe peut être déclarée :Code:
1
2
3
4
5 class List<T> { // List implementation } type StringList = List<string>; var x: StringList = new StringList(); // Error, cannot find name 'StringList'
Code:
1
2
3
4
5 class List<T> { // List implementation } class StringList extends List<string> { } var x: StringList = new StringList(); // Ok