Chciałem napisać parametr typu number, ale błędnie napisałem typ, pisząc Numberzamiast tego.
Na moim IDE (JetBrains WebStorm) typ Numberjest zapisany tym samym kolorem, który jest używany dla typu pierwotnego number, natomiast jeśli napiszę nazwę klasy (znanej lub nieznanej), używa innego koloru, więc domyślam się, że jakoś rozpoznaje błędnie napisany typ jako poprawny / prawie poprawny / rodzaj-poprawny.
Kiedy kompiluję kod, zamiast narzekać na przykład, że kompilator nie mógł znaleźć klasy o nazwie Number, TSC zapisuje następujący komunikat o błędzie:
Illegal property access
Czy to oznacza, że numberi Numberoba współistnieją jako różne typy?
Jeśli to prawda, jaka jest różnica między tymi klasami?
Jeśli tak nie jest, to dlaczego po prostu nie napisał tego samego komunikatu o błędzie, który wyświetla dla nieznanych klas („Nazwa„ Numer ”nie istnieje w bieżącym zakresie”)
To jest kod:
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];
}
}