Je voulais écrire un paramètre de type number
mais j'ai mal orthographié le type, en écrivant Number
à la 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
En revanche, si j'écris le nom d'une classe (connue ou inconnue), il utilise une couleur différente. Je suppose donc que, d'une manière ou d'une autre, il reconnaît le type mal orthographié comme un type correct/presque-correct/sort-de-correct.
Lorsque je compile le code, au lieu de se plaindre par exemple que le compilateur n'a pas pu trouver une classe nommée Number
le TSC écrit ce message d'erreur :
Illegal property access
Est-ce que cela signifie que number
y Number
les deux coexistent en tant que types différents ?
Si cela est vrai, quelle est la différence entre ces classes ?
Si ce n'est pas le cas, alors pourquoi n'a-t-il pas simplement é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];
}
}