添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Bonjour,
J'ai un probleme avec une erreur de syntaxe mais je ne vois pas ce qui poste probleme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { Injectable } from '@angular/core';
import {Http} from '@angular/http';
@Injectable()
export class 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}':''; .
Homme Profil pro
Ingénieur développement logiciels
Inscrit en
Mars 2018
Messages
8
Détails du profil
Informations personnelles :
Sexe : Homme
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
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.
Homme Profil pro
Ingénieur développement logiciels
Inscrit en
Mars 2018
Messages
8
Détails du profil
Informations personnelles :
Sexe : Homme
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".
Homme Profil pro
Ingénieur développement logiciels
Inscrit en
Mars 2018
Messages
8
Détails du profil
Informations personnelles :
Sexe : Homme
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.