Quelle est la signification de “=>” en caractères d'imprimerie? (Grosse Flèche)
Je viens de commencer à apprendre à la Machine, et j'ai vu qu'il y est beaucoup de code à l'aide de cette sytax =>
. J'ai fait quelques recherches par la lecture de la Spécification de fichier d'enregistrement de la Version 1.6 et une recherche sur google. Je ne peux toujours pas comprendre le sens de =>
.
Pour moi, il se sent comme un pointeur en C++. Mais je ne peux pas le confirmer. Si quelqu'un peut expliquer les exemples suivants, qui sera grande. Merci!!!!
Voici les exemples que j'ai trouvé quand j'ai été la lecture de la spécification de la Machine :
Types D'Objet
var MakePoint: () => {
x: number; y: number;
};
Question: qu'est-Ce que ce code fait? La création d'un objet appelé MakePoint, où les champs x et y sont nombre type? Est-ce un constructeur ou une fonction pour MakePoint?
Fonction Des Types De
function vote(candidate: string, callback: (result: string) => any) {
//...
}
Question: Quel est le sens de => any
? Avez-vous des retour d'un type de chaîne?
Quelqu'un peut-il m'expliquer la différence ou de la finalité de ces exemples en anglais? Je vous remercie pour votre temps!
- Cela pourrait aussi aider: codebelt.com/typescript/arrow-function-typescript-tutorial
Vous devez vous connecter pour publier un commentaire.
Peut-être vous êtes confus informations de type avec une déclaration de fonction. Si vous compiler les suivantes:
vous verrez qu'elle produit:
À la Machine, tout ce qui vient après la
:
mais avant un=
(affectation) est le type de l'information. Donc ton exemple est dire que le type de MakePoint est une fonction qui prend 0 arguments et retourne un objet avec les deux propriétés,x
ety
, les deux numéros. Il n'est pas assigner une fonction à une variable. En revanche, la compilation:produit:
Noter que dans ce cas, le
=>
graisse flèche vient après que l'opérateur d'affectation.function MakePoint() { ...}
?()=>...
), et il conserve le champ d'application dethis
ce qui signifie que vous n'avez plus à créervar self = this
variables, ou de passerthis
par les arguments de la fonction. Plus d'infos icix
ety
dans votre exemple devar MakePoint = () => 1
?x
ety
sont à la fois assgined à1
?MakePoint().x
.MakePoint
est une fonction qui retourne un objet avec une propriétéx
. Mais dans le second cas, vous devez réécrire sous la formevar MakePoint = () => ({x: 1, y: 1});
(note de l'()
autour de l'objet) pour qu'il renvoie l'objet que vous voulez à la place du numéro 1 (qui j'ai été en utilisant comme exemple).Dans un type de position,
=>
définit un type de fonction où les arguments sont à la gauche de la=>
et le type de retour est sur la droite. Donccallback: (result: string) => any
signifie "callback
est un paramètre dont le type est une fonction. Cette fonction prend un paramètre appeléresult
de typestring
, et la valeur de retour de la fonction est de typeany
".Pour le niveau de l'expression de construire, de voir Quelle est la signification de "=>" (une flèche formée à partir d'égal à égal & plus grand que) en JavaScript?
p => this.people = p
Ce que la deuxième égalité de marque faire ici?=
est l'opérateur d'affectation en JavaScript(function (p) { return _this.people = p; });
MakePoint
est une variable. C'est le type est une fonction qui ne prend pas d'arguments et produit des nombres x et y. Maintenant la flèche de sens?Il est appelé le graisse flèche (parce que
->
est une mince flèche et=>
est une grosse flèche) et a également appelé un fonction lambda (autres langues). Une autre fonctionnalité couramment utilisée est la graisse de la flèche de la fonction()=>something
. La motivation pour une grosse flèche est:function
.this
.arguments
Si vous exécutez ce code dans le navigateur, au sein de la fonction va point à la fenêtre parce que la fenêtre va être quoi exécute la growOld fonction. Correctif est d'utiliser une flèche de la fonction:
Il est appelé "fat flèche". Il a été ajouté dans EcmaScript6 et remplace le mot-clé function, entre autres choses.
Plus peut être lu ici.
Directement à partir du lien à l'OP:
Simplement été utilisée à la place des fonctions anonymes.
Le code ci-dessous
sera transformé à
argument => {argument.length};
Pour mieux comprendre reportez-vous ci-dessous:
https://codecraft.tv/courses/angular/es6-typescript/arrow/