Volevo scrivere un parametro di tipo number
, ma ho sbagliato a scrivere il tipo, scrivendo Number
invece.
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 number
ed Number
entrambi 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];
}
}