Je voulais écrire un paramètre de type number
, mais j'ai mal orthographié le type, en écrivant à la Number
place.
Sur mon IDE (JetBrains WebStorm), le type Number
est écrit avec la même couleur que celle utilisée pour le type primitif number
, tandis que si j'écris le nom d'une classe (connue ou inconnue), il utilise une couleur différente, donc je suppose qu'il reconnaît d'une manière ou d'une autre le type mal orthographié comme un type correct / presque correct / en quelque sorte correct.
Lorsque je compile le code, au lieu de me plaindre par exemple que le compilateur n'a pas trouvé de classe nommée Number
, TSC écrit ce message d'erreur:
Illegal property access
Est - ce que cela signifie que number
et Number
tant coexiste que différents types?
Si cela est vrai, quelle est la différence entre ces classes?
Si ce n'est pas le cas, alors pourquoi il n'a tout simplement pas écrit le même message d'erreur qu'il affiche pour les classes inconnues ("Le nom 'Number' n'existe pas dans la portée actuelle")
Voici le code:
class Test
{
private myArray:string[] = ["Jack", "Jill", "John", "Joe", "Jeff"];
// THIS WORKS
public getValue(index:number):string
{
return this.myArray[index];
}
// THIS DOESN'T WORK: ILLEGAL PROPERTY ACCESS
public getAnotherValue(index:Number):string
{
return this.myArray[index];
}
}