Typescript: Syntaxe lambda différente entre le retour de primitive et le retour d'objet

Créé le 31 oct. 2016  ·  1Commentaire  ·  Source: microsoft/TypeScript



Version TypeScript : 2.0.3 / tous les soirs (2.1.0-dev.201xxxxx)

Code

// A *self-contained* demonstration of the problem follows...
const fn_prim = () => 3;
const fn_obj = () => {
    val: 3
};

Comportement prévisible:
Je m'attends à ce qu'il compile bien. fn_prim doit renvoyer 3 lorsqu'il est appelé, fn_obj doit renvoyer { val: 3 } lorsqu'il est appelé.

Comportement réel :
Erreur "Étiquette non utilisée" sur val:

Question

Commentaire le plus utile

TypeScript suit la spécification ES et par spécification, votre deuxième exemple est une fonction de flèche où body est un corps de fonction enveloppé dans { } donc val: 3 est interprété comme une instruction étiquetée avec l'étiquette val et instruction d'expression avec l'expression 3 . Pour en faire une fonction fléchée qui renvoie un objet littéral, vous devrez l'envelopper entre parenthèses :

const fn_obj = () => ({
    val: 3
});

Lien connexe : MDN : Fonctions fléchées , section Returning object literals

>Tous les commentaires

TypeScript suit la spécification ES et par spécification, votre deuxième exemple est une fonction de flèche où body est un corps de fonction enveloppé dans { } donc val: 3 est interprété comme une instruction étiquetée avec l'étiquette val et instruction d'expression avec l'expression 3 . Pour en faire une fonction fléchée qui renvoie un objet littéral, vous devrez l'envelopper entre parenthèses :

const fn_obj = () => ({
    val: 3
});

Lien connexe : MDN : Fonctions fléchées , section Returning object literals

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

uber5001 picture uber5001  ·  3Commentaires

kyasbal-1994 picture kyasbal-1994  ·  3Commentaires

blendsdk picture blendsdk  ·  3Commentaires

remojansen picture remojansen  ·  3Commentaires

manekinekko picture manekinekko  ·  3Commentaires