该代码未编译(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)
}
Run Code Online (Sandbox Code Playgroud)
这是TypeScipt操场上的相同代码:https ://www.typescriptlang.org/play/index.html#src=class%20Foo%20%7B%0D%0A%20%20constructor(public%20key%3A%20string% 2C%20public%20value%3A%20string)%20%7B%0D%0A%20%20%7D%0D%0A%7D%0D%0A%0D%0Aconst%20arr%20%3D%20new%20Array%3CFoo %3E()%3B%0D%0A%0D%0Afor%20(let%20foo%20in%20arr)%20%7B%0D%0A%20%20%20%20%20%20%20console.log(foo。键%2C%20foo.value)%0D%0A%7D
原因是:
为什么TypeScript认为变量是字符串的类型以及如何使用for..in循环来修复它?
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)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
340 次 |
| 最近记录: |