ฉันตั้งใจจะเขียนพารามิเตอร์ของประเภท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];
}
}