2016-02-26 1 views
0

Je commence à utiliser Typescript, et je n'arrive pas à comprendre exactement la structure des classes. À savoir comment utiliser les variables de champ.Variables de champ dans Typescript

class NumberClass { 
    private numberArray1: number[] = [1,2,3,4,5,6,7,8,9,10]; 
    public numberArray2: number[] = [1,2,3,4,5,6,7,8,9,10]; 
    numberArray3: number[] = [1,2,3,4,5,6,7,8,9,10]; 
    var numberArray4: number[] = [1,2,3,4,5,6,7,8,9,10]; 


    validateNumber(): void{ 

     for (var i: number = 0; i < numberArray.length; i++) { 
      //validate numbers 
     } 
    } 

} 

numberArray1 à numberArray3 dit qu'il ne peut pas être résolu, numberarray4 pauses absolument tout et me dit qu'un constructeur, méthode, accesseur ou propriété devrait. Est-ce que quelqu'un peut me dire ce que je n'arrive pas à comprendre? :)

Répondre

2

Vous avez quelques problèmes dans votre code.

Vous ne pouvez pas avoir de variable détachée déclarée dans le cadre des définitions de classe. Seul privé/public/protégé ou rien n'est autorisé. Aucun modificateur d'accès n'est identique au public. Par conséquent vos # 1,2,3 sont valides. Mais le n ° 4 ne l'est pas.

Si vous souhaitez accéder à champ d'instance dans votre méthode de classe votre devrait utiliser « ce » mot-clé:

for (var i: number = 0; i < this.numberArray1.length; i++) { 
     //validate numbers 
} 

Ou déclarer ce champ comme statique:

private static numberArray1: number[] = [1,2,3,4,5,6,7,8,9,10]; 

et d'y accéder par nom de classe :

for (var i: number = 0; i < NumberClass.numberArray1.length; i++) { 
     //validate numbers 
} 
+0

Ah, il semble que je doive utiliser "ceci" beaucoup plus que je suis habitué. Merci beaucoup! Je voulais que ce soit privé, et cela fonctionne avec le mot-clé "this". – user3307017