Je viens de remarquer en essayant de créer une interface dans TypeScript que "type" est soit un mot-clé, soit un mot réservé. Lors de la création de l'interface suivante, par exemple, «type» s'affiche en bleu dans Visual Studio 2013 avec TypeScript 1.4:
interface IExampleInterface {
type: string;
}
Disons que vous essayez ensuite d'implémenter l'interface dans une classe, comme ceci:
class ExampleClass implements IExampleInterface {
public type: string;
constructor() {
this.type = "Example";
}
}
Dans la première ligne de la classe, lorsque vous tapez (désolé) le mot "type" afin d'implémenter la propriété requise par l'interface, IntelliSense apparaît avec "type" ayant la même icône que d'autres mots-clés comme "typeof" ou "new ".
J'ai jeté un coup d'œil et j'ai pu trouver ce problème GitHub qui répertorie "type" comme un "mot réservé en mode strict" dans TypeScript, mais je n'ai pas trouvé d'autres informations sur son objectif réel.
Je soupçonne que j'ai un pet cérébral et c'est quelque chose d'évident que je devrais déjà savoir, mais à quoi sert le mot réservé «type» dans TypeScript?
la source
Type Alias
pour donner à vos types un nom sémantique: basarat.gitbooks.io/typescript/content/docs/types/…Réponses:
Il est utilisé pour les "alias de type". Par exemple:
Référence: Spécification TypeScript v1.5 (section 3.9, «Alias de type», pages 46 et 47)
Mise à jour : maintenant sur la section 3.10 de la spécification 1.8 . Merci @RandallFlagg pour les spécifications et le lien mis à jour
Mise à jour : Manuel TypeScript , la recherche "Alias de type" peut vous amener à la section correspondante.
la source
Tapez le mot-clé dans le typographie:
En typographie, le mot-clé type définit un alias vers un type. Nous pouvons également utiliser le mot-clé type pour définir les types définis par l'utilisateur. Ceci est mieux expliqué par un exemple:
Vous pouvez composer les types de types scalaires (
string
,number
, etc.), mais aussi des valeurs littérales comme1
ou'mystring'
. Vous pouvez même composer des types d'autres types définis par l'utilisateur. Par exemple, le typemadness
contient les typesrandom
etcolor
.Ensuite, lorsque nous essayons de rendre une chaîne littérale notre (et nous avons IntelliSense dans notre IDE), il affiche des suggestions:
Il montre toutes les couleurs, dont la folie de type dérive de la couleur de type, 'random' qui est dérivée de type random, et enfin, la chaîne
'foo'
qui se trouve sur la folie de type lui-même.la source
type color = "blue" | "red" | "yellow" | "purple";
déclarations à l'intérieur ou à l'extérieur de la classe?