Tôi định viết một tham số kiểu number
, nhưng tôi đã viết sai chính tả kiểu, Number
thay vào đó tôi viết .
Trên IDE của tôi (JetBrains WebStorm), kiểu Number
được viết với cùng một màu được sử dụng cho kiểu nguyên thủy number
, trong khi nếu tôi viết tên của một lớp (đã biết hoặc chưa biết) thì nó sử dụng màu khác, vì vậy tôi đoán rằng bằng cách nào đó nó nhận ra kiểu sai chính tả là kiểu đúng / gần đúng / sắp xếp đúng.
Khi tôi biên dịch mã, thay vì phàn nàn chẳng hạn như trình biên dịch không thể tìm thấy một lớp có tên Number
, TSC viết thông báo lỗi này:
Illegal property access
Điều đó có nghĩa là number
và Number
cả hai cùng tồn tại dưới dạng các loại khác nhau?
Nếu điều này là đúng, thì đâu là sự khác biệt giữa các lớp đó?
Nếu đây không phải là trường hợp, thì tại sao nó chỉ đơn giản là không viết cùng một thông báo lỗi mà nó hiển thị cho các lớp không xác định ("Tên 'Số' không tồn tại trong phạm vi hiện tại")
Đây là mã:
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];
}
}