Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion: Syntaxe error TS1005

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : septembre 2018
    Messages : 2
    Points : 1
    Points
    1

    Par défaut Syntaxe error TS1005

    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 :

    10% building modules 0/1 modules 1 active ...yVideo\src\app\site\film\film.module.tsERROR in src/app/site/film/services/searchmovie.service.ts(8,32): error TS1005: '=>' expected.

    Sauriez-vous ce qui peut poser probleme ?

    Merci d'avance

  2. #2
    Membre expert Avatar de psychadelic
    Profil pro
    Inscrit en
    mai 2010
    Messages
    1 955
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2010
    Messages : 1 955
    Points : 3 839
    Points
    3 839

    Par défaut

    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}':''; .
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : septembre 2018
    Messages : 2
    Points : 1
    Points
    1

    Par défaut

    J'ai modifié les guillemet cependant l'erreur est toujours la elle est presente sur la ligne du dessus apres (data;Object) il 'agit de la virgule qui pose probleme

  4. #4
    Membre à l'essai Avatar de spontoreau
    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

    Par défaut

    Citation Envoyé par psychadelic Voir le message
    ici tu est dans la partie du forum consacré à JavaScript "pure"

    la moindre des choses c'est de montrer le code JavaScript généré sur le navigateur.
    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.

    A+

  5. #5
    Membre à l'essai Avatar de spontoreau
    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

    Par défaut

    Citation Envoyé par psychadelic Voir le message
    sinon le transpiler sous VSC indique clairement que sa virgule devrait être un "=>"
    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".

  6. #6
    Membre à l'essai Avatar de spontoreau
    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

    Par défaut

    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.

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/03/2006, 15h08
  2. syntax error
    Par ludovik dans le forum C
    Réponses: 5
    Dernier message: 18/03/2006, 22h32
  3. Syntax error
    Par vincedjs dans le forum Débuter
    Réponses: 3
    Dernier message: 01/02/2006, 17h58
  4. Syntax Error / Questions
    Par kedare dans le forum Général Python
    Réponses: 15
    Dernier message: 12/09/2005, 15h05
  5. "vector" provoque "syntax error", malgré
    Par seenkay dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 24/08/2003, 04h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo