使用TypeScript中私有集合的密钥设置动态属性
在…中运行此 我从声明的最后一部分了解到这一点使用TypeScript中私有集合的密钥设置动态属性,typescript,Typescript,在…中运行此 我从声明的最后一部分了解到这一点 An index expression argument must be of type 'string', 'number', 'symbol, or 'any'. (property) Test.myCollection: TestObj[] 我想我可能很难理解“私人”财产。我做了大量的研究,但我真的很难理解极客的话。我似乎找不到任何人有这个问题,所以我认为这是某种不正常的事情 理想情况下,如果我尝试从测试类外部使用myCollection,
An index expression argument must be of type 'string', 'number', 'symbol, or 'any'.
(property) Test.myCollection: TestObj[]
我想我可能很难理解“私人”财产。我做了大量的研究,但我真的很难理解极客的话。我似乎找不到任何人有这个问题,所以我认为这是某种不正常的事情
理想情况下,如果我尝试从测试类外部使用myCollection,我希望显示一个错误。字符串的基本类型是
string
,而不是string
。相应地更改接口:
interface TestObj {
name: string;
}
String
用于String对象,而String
用于基本类型。例如:
var obj: any = {};
var strObj = new String("test"); // typed as String
var str = "test"; // typed as string
obj[strObj] = "test"; // error you were seeing
obj[str] = "test"; // ok
字符串的基本类型是
string
,而不是string
。相应地更改接口:
interface TestObj {
name: string;
}
String
用于String对象,而String
用于基本类型。例如:
var obj: any = {};
var strObj = new String("test"); // typed as String
var str = "test"; // typed as string
obj[strObj] = "test"; // error you were seeing
obj[str] = "test"; // ok
我的猜测是TS确实认识到集合中的第一个对象没有
名称
属性-您的“索引表达式参数”解析为未定义
。我猜您想使用.push(REBOJ)
?谢谢!我更新了代码。尽管如此,我的猜测是TS确实识别出集合中的第一个对象没有名称
属性-您的“索引表达式参数”解析为未定义
。我猜您想使用.push(REBOJ)
?谢谢!我更新了代码。尽管如此,我的猜测是TS确实识别出集合中的第一个对象没有名称
属性-您的“索引表达式参数”解析为未定义
。我猜您想使用.push(REBOJ)
?谢谢!我更新了代码。尽管如此,还是得到了警告