Volevo scrivere un parametro di tipo number, ma ho sbagliato a scrivere il tipo, scrivendo Numberinvece.
Sul mio IDE (JetBrains WebStorm) il tipo Numberè scritto con lo stesso colore che viene usato per il tipo primitivo number, mentre se scrivo il nome di una classe (conosciuta o sconosciuta) usa un colore diverso, quindi immagino che in qualche modo lo riconosca il tipo errato come tipo corretto / quasi corretto / tipo corretto.
Quando compilo il codice, invece di lamentarmi ad esempio che il compilatore non è riuscito a trovare una classe denominata Number, TSC scrive questo messaggio di errore:
Illegal property access
Ciò significa che numbered Numberentrambi coesistono come tipi diversi?
Se questo è vero, qual è la differenza tra queste classi?
In caso contrario, perché semplicemente non ha scritto lo stesso messaggio di errore visualizzato per le classi sconosciute ("Il nome 'Numero' non esiste nell'ambito corrente")
Questo è il codice:
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];
}
}