IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

TypeScript Discussion :

Type chaine Json


Sujet :

TypeScript

  1. #1
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut Type chaine Json
    Bonjour,

    je découvre typescript en essayant de convertir un code js pur.

    J'ai donc une classe qui reçoit en entrée une chaine json. Pour le typage de cette chaine j'ai utilisé une interface :

    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
    interface jsonResponse {
        status: number;
        date: string;
        content: string;
    }
     
    class Response {
        private response: jsonResponse;
     
        constructor(rep: jsonResponse) {
            this.response = rep;
        }
     
        public getStatus(){
            return this.response.status;
        }
    }
    Est ce là bonne facon de faire ?

    Comment procéder dans le cas ou l'objet JSON n'est jamais structuré de la même façon ?

    merci
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Billets dans le blog
    43
    Par défaut
    Tout d'abord, coder en TypeScript ne t'oblige pas à faire de l'orienté objet.
    La seule véritable contrainte de TypeScript étant au niveau du typage qui doit être consistant.

    Sur ton exemple, si tu veux faire de la POO et charger ton JSON dans un objet, l'interface est tout à fait appropriée.
    Je ne suis pas sûr par contre de l'utilité de ta classe Response, mais c'est une manière de faire, sachant que tes choix ici dépendent plus de ton choix de modélisation que du langage TypeScript en lui-même.

    Si tu ne connais pas à l'avance la structure du fichier JSON, tu peux utiliser avec précaution l'instruction eval, ou parser ton JSON via jQuery ou d'autres libs sachant que cette problématique n'est pas spécifique à TypeScript, mais également à JavaScript (garde bien à l'esprit que TypeScript est un surensemble de JavaScript).
    Tutoriels et FAQ TypeScript

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Merci de ta réponse.

    En fait ma problmatique se situe au niveau du type à donner à l'argument repDans ce cas ça fonctionne car mon objet json est toujours le même.

    En revanche dans le cas où il serait différent à chaque appel , quel type donner ?

    N'y a t'il pas un type d'objet générique qui me permettrait de faire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    constructor(rep: T) {
            this.response = rep;
    }
    public getTruc(){
            return this.response.unattributinconnu;
    }
    En tout cas associé à VS2013 le typescript rendrait presque le javascript cool à utiliser
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Billets dans le blog
    43
    Par défaut
    Il existe les types génériques en TypeScript via les chevrons <...>.

    Pour ton exemple, ça pourrait s'écrire ainsi :

    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
    19
    20
    21
    22
    23
    24
    25
    interface baseResponse {
    	status: number;
    }
     
    interface jsonResponse1 extends baseResponse {
        date: string;
        content: string;
    }
     
    interface jsonResponse2 extends baseResponse {
    	name: string;
    	value: number;
    }
     
    class Response<T extends baseResponse> {
        private response: T;
     
        constructor(rep: T) {
            this.response = rep;
        }
     
        public getStatus(){
            return this.response.status;
        }
    }
    Tutoriels et FAQ TypeScript

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SQL UPDATE - Pb avec chaine de type '&chaine'
    Par JIPO91 dans le forum SQL
    Réponses: 2
    Dernier message: 07/12/2007, 11h11
  2. [XI] Faire la somme de 2 champs de type chaine
    Par campia dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 27/06/2007, 15h46
  3. Conversion d'un type (chaine) en type concret
    Par cheachwood dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 19/12/2006, 16h23
  4. [LG]Type chaine avec plus de 255 car et EOF intempestif.
    Par jpclabaux dans le forum Langage
    Réponses: 2
    Dernier message: 27/10/2004, 10h39

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