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 :

propriete class setted plus tard


Sujet :

TypeScript

  1. #1
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    Par défaut propriete class setted plus tard
    hello,

    je reviens vers vous pour un nouveau probleme "pas comme d'habitude"

    comment faire pour definir les proprietes privees d'une classe, mais qui seront "instancies" plus tard (pas dans le constructeur)

    par exemple, je voudrai faire quelque chose comme :
    Code typescript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class Voiture {
        private marque:string;
        private annee:number;
        constructor(m:string) {
            this.marque = m;
        }
        addYear(y:number) {
            this.annee = y;
        }
    }
    la, TS n'est pas content car
    Property 'annee' has no initializer and is not definitely assigned in the constructor.
    du coup, pour palier a ca, je passe par
    Code typescript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Voiture {
        private marque:string;
        private annee:number|null;// |null ajoute
        constructor(m:string) {
            this.marque = m;
            this.annee = null;// initialisation a null ajoute
        }
        addYear(y:number) {
            this.annee = y;
        }
    }
    et la, TS est content.. mais je ne trouve pas ca terrible...

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 954
    Points
    44 954
    Par défaut
    Bonjour,
    as tu essayé avec un ! definite assignment assertion operator
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class Voiture {
        private marque: string;
        private annee!: number;
        constructor(m: string) {
            this.marque =  m;
        }
        addYear(y: number) {
            this.annee =  y;
        }
    }

  3. #3
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    Par défaut
    non, c'est vrai que je n'ai pas utilise le ! (j'ai teste, ca resoud effectivement le probleme)
    => j'avais cru comprendre que c'etait pour dire a TS "je sais mieux que toi, je te dis que cette variable est de ce type..."
    ==> du coup, j'ai toujours essaye de ne pas l'utiliser

    peux-tu m'expliquer comment interpreter ce !=> et est-ce une bonne pratique de l'utiliser ?

    est-ce une bonne pratique pour ce genre de cas (pour mes autres classes qui ont ce concept) je ne me pose pas de question et je mets de ! partout ?

    edit : typo

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 954
    Points
    44 954
    Par défaut
    => j'avais cru comprendre que c'etait pour dire a TS "je sais mieux que toi, je te dis que cette variable est de ce type..."
    Ce n'est pas exactement la conclusion que j'ai tiré de :
    Citation Envoyé par TS v.2.7
    The definite assignment assertion is a feature that allows a ! to be placed after instance property and variable declarations to relay to TypeScript that a variable is indeed assigned for all intents and purposes, even if TypeScript’s analyses cannot detect so.

  5. #5
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    Par défaut
    ok, je comprends mieux ...

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

Discussions similaires

  1. [C#] Classe Settings
    Par Seth77 dans le forum C#
    Réponses: 8
    Dernier message: 24/11/2006, 19h05
  2. Réponses: 2
    Dernier message: 31/10/2006, 17h29
  3. [debutant][JNI]Stocker des objet pour les rappeler plus tard
    Par Celenor dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 28/03/2004, 03h28

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