Saya bermaksud menulis parameter tipe number
, tetapi saya salah mengeja tipe, Number
sebagai gantinya menulis .
Di IDE saya (JetBrains WebStorm), jenisnya Number
ditulis dengan warna yang sama yang digunakan untuk jenis primitif number
, sedangkan jika saya menulis nama kelas (diketahui atau tidak dikenal) menggunakan warna yang berbeda, jadi saya rasa entah bagaimana ia mengenali jenis yang salah eja sebagai jenis yang benar / hampir benar / semacam-dari-benar.
Ketika saya mengkompilasi kode, alih-alih mengeluh misalnya bahwa kompiler tidak dapat menemukan kelas bernama Number
, TSC menulis pesan kesalahan ini:
Illegal property access
Apakah itu berarti bahwa number
dan Number
keduanya hidup berdampingan sebagai tipe yang berbeda?
Jika ini benar, manakah perbedaan antara kelas-kelas itu?
Jika ini bukan masalahnya, mengapa itu tidak menulis pesan kesalahan yang sama yang ditampilkan untuk kelas yang tidak dikenal ("Nama 'Nomor' tidak ada dalam cakupan saat ini")
Ini kodenya:
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];
}
}