运算符“==”不能应用于字符串和数字类型
Operator '==' cannot be applied to types string and number
如何查看数字的值?
for(var index in this.choicesDM) {
if(index == 0) {
this.currentChoice = this.choicesDM[index]
}
}
在这里,我得到了 问题 标题 中提到的 错误。我还尝试明确定义索引的类型。但是没有用。
找到这个 但没有得到解决方案。
这是因为 == 和其他相关比较运算符对具有相同类型或 1 操作数类型的操作数进行操作应该是其他操作数的子类型。但在你的情况下 0 是整数, "index" 是字符串。因此错误。
在 JavaScript(以及 TypeScript)中,in
运算符 returns 一个字符串。这是因为 for in
循环遍历 对象 的键,这些键是 JavaScript/TypeScript 中的字符串。因此,当您比较 index == 0
时,index
是一个字符串而 0
是一个整数,因此会出现错误。
请注意我之前所说的,for in
枚举对象的属性。在数组的情况下,这还包括诸如 length
属性 之类的东西,因此使用 for in
遍历数组通常不是一个好主意。您可能想要的是 for of
循环,其中 of
为您提供数组中每个对象的值。
如何查看数字的值?
for(var index in this.choicesDM) {
if(index == 0) {
this.currentChoice = this.choicesDM[index]
}
}
在这里,我得到了 问题 标题 中提到的 错误。我还尝试明确定义索引的类型。但是没有用。
找到这个
这是因为 == 和其他相关比较运算符对具有相同类型或 1 操作数类型的操作数进行操作应该是其他操作数的子类型。但在你的情况下 0 是整数, "index" 是字符串。因此错误。
在 JavaScript(以及 TypeScript)中,in
运算符 returns 一个字符串。这是因为 for in
循环遍历 对象 的键,这些键是 JavaScript/TypeScript 中的字符串。因此,当您比较 index == 0
时,index
是一个字符串而 0
是一个整数,因此会出现错误。
请注意我之前所说的,for in
枚举对象的属性。在数组的情况下,这还包括诸如 length
属性 之类的东西,因此使用 for in
遍历数组通常不是一个好主意。您可能想要的是 for of
循环,其中 of
为您提供数组中每个对象的值。