此代码未编译(TypeScript v 2.9):
class Foo {
constructor(public key: string, public value: string) {
}
}
const arr = new Array<Foo>();
for (let foo in arr) {
console.log(foo.key, foo.value)
}
原因是:
为什么TypeScript认为变量是字符串的类型以及如何使用for..in
循环来解决它?
答案 0 :(得分:5)
for-in
将迭代对象的键,使用for-of
class Foo {
constructor(public key: string, public value: string) {
}
}
const arr = new Array<Foo>();
for (let foo of arr) {
console.log(foo.key, foo.value)
}
答案 1 :(得分:1)
尝试使用for (let foo of arr) {
代替for (let foo in arr) {