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 :

Surcharge de toString


Sujet :

TypeScript

  1. #1
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut Surcharge de toString
    Bonjour à tous,

    une petite question de débutant : comment peut-on surcharger la méthode toString d'un objet en TypeScript ? J'ai fait ça :

    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
    26
    27
    28
    29
    30
    31
    32
    export class Location {
    
      constructor() {
        this.postCode = null;
    }
    
      streetNumber: string;
    multiplier: string;
    street: string;
    extension: string;
    postCode: number;
    postCodeExtension: string;
    city: string;
    
    public toString(): string {
        let r: string = '';
    r += this.streetNumber;
    if(this.multiplier != null){
          r+=this.multiplier;
    }
        r += this.street;
    if(this.extension != null){
          r+=this.extension;
    }
        r += this.postCode;
    if(this.postCodeExtension != null){
          r+=this.postCodeExtension;
    }
        r += this.city;
    return r;
    }
    }
    mais ça ne marche pas... Je continu d'avoir [object Object] comme résultat... Si quelqu'un peut éclairer ma lanterne, merci d'avance.
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  2. #2
    Membre éclairé
    Avatar de Paleo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2013
    Messages : 242
    Points : 661
    Points
    661
    Par défaut
    Bonjour,
    Ça devrait fonctionner.

  3. #3
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Oui, ça devrait, mais ce n'est pas le cas . Le JS compilé contient bien
    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
    Location.prototype.toString = function () {
        var r = '';
    r += this._streetNumber;
    if (this._multiplier != null) {
            r += this._multiplier;
    }
        r += this._street;
    if (this._extension != null) {
            r += this._extension;
    }
        r += this._postCode;
    if (this._postCodeExtension != null) {
            r += this._postCodeExtension;
    }
        r += this._city;
    return r;
    };
    Ce qui devrait être une surcharge de toString, mais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log(this.location.toString());
    me renvois toujours [object Object] ...
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  4. #4
    Membre éclairé
    Avatar de Paleo
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2013
    Messages : 242
    Points : 661
    Points
    661
    Par défaut
    Peut-être que "this.location" contient autre chose qu'une instance de Location ?

  5. #5
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Non, j'ai vérifié. En fait, le toString est appelé dans un datatable primeng, pour afficher l'adresse complète dans une colonne. A la sélection d'une ligne, j'ai un formulaire qui s'ouvre en dialog avec le détail, et là l'adresse est bien visible dans les différents champs, mais détaillée, pas en appel de toString... Donc le problème ne vient pas de là.
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

Discussions similaires

  1. Surcharger la méthode ToString du type Boolean
    Par Kropernic dans le forum VB.NET
    Réponses: 13
    Dernier message: 10/04/2014, 15h29
  2. Comment surcharger ToString()
    Par PatricePatrice dans le forum C#
    Réponses: 2
    Dernier message: 15/09/2012, 22h53
  3. Réponses: 7
    Dernier message: 05/02/2010, 14h21
  4. [KeyValuePair] surcharge de toString()
    Par TotorLeCastor dans le forum C#
    Réponses: 8
    Dernier message: 05/02/2009, 11h34
  5. Réponses: 8
    Dernier message: 20/11/2002, 11h50

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