import{ Injectable }from'@angular/core';import{Http}from'@angular/http';@Injectable()exportclass SearchmovieService {constructor(private http:Http){}
search(action:(data:Object), title:string, year:number=0):void{let y = year ?'&y=${year}':'';let t = title ?'&t=${title}':'';this.http.get('http://www.omdbapi.com/?apikey=xxxxf&t=${t}$y=${y}&plot=full').subscribe((response)=>{
action(response.json());});
L'erreur se trouve à la ligne 8 apres (data:Object) sur la virgule
Il me retourne ceci :
Je pense que c'est parce que tu n'utilise pas n'utilise le bon caractère guillemet
c'est : let y = year ?`&y=${year}`:''; .
et non let y = year ?'&y=${year}':''; .
Ingénieur développement logiciels
Inscrit en
Mars 2018
Messages
8
Détails du profil
Informations personnelles :
Sexe :
Localisation : France, Paris (Île de France)
Informations professionnelles :
Activité : Ingénieur développement logiciels
Informations forums :
Inscription : Mars 2018
Messages : 8
Points : 13
Points
13
C'est un sous forum TypeScript, j'comprends pas ta remarque car c'est une erreur de syntaxe TS, rien à voir avec le code qui va être sorti en JavaScript...
@touguy, quand tu utilise un type pour définir un paramètre en tant que fonction typée, il faut que tu précise le retour de la dite fonction. Ici il est manquant en fait:
search(action: (data: Object) => void, title:string, year:number = 0):void{
//...
Vu que c'est une action et que tu n'utilises pas le retour, un retour void suffit.
Ingénieur développement logiciels
Inscrit en
Mars 2018
Messages
8
Détails du profil
Informations personnelles :
Sexe :
Localisation : France, Paris (Île de France)
Informations professionnelles :
Activité : Ingénieur développement logiciels
Informations forums :
Inscription : Mars 2018
Messages : 8
Points : 13
Points
13
Pas du tout, il indique que le type de retour de la fonction est manquant comme indiquer dans mon commentaire précédent et dans le message d'erreur qui est très clair.
Rien à voir avec la virgule, elle n'a pas à être remplacer par quoi que se soit il faut juste rajouter "=> void".
Ingénieur développement logiciels
Inscrit en
Mars 2018
Messages
8
Détails du profil
Informations personnelles :
Sexe :
Localisation : France, Paris (Île de France)
Informations professionnelles :
Activité : Ingénieur développement logiciels
Informations forums :
Inscription : Mars 2018
Messages : 8
Points : 13
Points
13
Je sais pas pourquoi tu insistes sur ce topic après avoir donner 2 informations incorrects. A priori tu ne connais pas bien le système de type de TypeScript...
Quand tu précise le type d'une fonction en paramètre tu as besoin de préciser avec un "=>" le type qu'elle va retourner. Ya rien de plus à dire, j'ai déjà indiqué ça dans ma première réponse. Le problème n'a rien à voir avec la virgule, il manque le retour. Un paramètre avec le type "(data: Object)" est invalide en TypeScript, car sans retour. Syntaxiquement il faut utilisé "=>" pour le préciser: "(data: Object) => void". Test dans le Playground ou Code, tu verras ensuite qu'il n'y a plus de problème syntaxique.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité,
merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.