タイプのパラメータを書くつもりでしたnumber
が、タイプのつづりを間違えて、Number
代わりに書きました。
私のIDE(JetBrains WebStorm)では、型Number
はプリミティブ型に使用されるのと同じ色で書かれていnumber
ますが、クラスの名前(既知または不明)を書くと異なる色を使用するので、どういうわけか認識していると思います正しい/ほぼ正しい/正しい種類のタイプとしてのスペルミスのタイプ。
コードをコンパイルすると、たとえばコンパイラがという名前のクラスが見つからなかったと文句を言う代わりにNumber
、TSCは次のエラーメッセージを書き込みます。
Illegal property access
それはnumber
、Number
両方が異なるタイプとして共存することを意味しますか?
これが本当の場合、それらのクラスの違いはどれですか?
そうでない場合は、不明なクラスに対して表示されるのと同じエラーメッセージを単に書き込まなかったのはなぜですか(「名前「番号」は現在のスコープに存在しません」)
これはコードです:
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];
}
}