我原本想写一个number
类型的参数,但我拼错了单词,写成了Number
。
在我的IDE(JetBrains WebStorm)中,Number
这个类型所使用的颜色与原始类型number
所使用的颜色相同,而如果我写一个类名(已知或未知),它会使用不同的颜色。因此,我猜测它以某种方式将错误拼写的类型识别为正确/几乎正确/差不多正确的类型。
当我编译代码时,TSC并没有抱怨找不到名为Number
的类,而是写了这个错误消息:
Illegal property access
这是否意味着number
和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];
}
}
object
出现之前编写的。 - Ryan Cavanaugh[]
表示数组类型。虽然可能有例外,但我不确定。 - Victor Zamanian