Typescript生成一个';属性不存在于类型';错误(从JS转换的代码)

Typescript生成一个';属性不存在于类型';错误(从JS转换的代码),typescript,Typescript,我有一个for循环,Typescript抱怨类型错误消息上不存在属性 代码是: for (category of this.theImageCategories) { if (category.checked) { categoryCount++; selectedCategories.push(category.id); } } Typescript正在抱怨类型“{}”上不存在选中的属性 我必须怎么做才能消除此错误消息?此问题与循环无关。变量c

我有一个for循环,Typescript抱怨类型错误消息上不存在
属性

代码是:

  for (category of this.theImageCategories) {
    if (category.checked) {
      categoryCount++;
      selectedCategories.push(category.id);
    }
  }
Typescript正在抱怨类型“{}”上不存在选中的
属性


我必须怎么做才能消除此错误消息?

此问题与循环无关。变量
category
的类型为
{}
,这就是为什么不能调用选中的成员
。例如,以下代码会产生相同的错误:

let category = {}
category.checked // Error: Property 'checked' does not exist on type '{}'
我一直在将一些Javascript代码转移到Typescript,因为这是我正在使用的框架的一个要求,所以我发现了各种各样的不一致[引用自聊天记录]

变量
类别
已在程序的其他位置声明。为了找到它,我建议使用
let
而不是
var
。在第二个示例中,第二个声明使编译器抱怨两个变量:

var category = {} // Error: Duplicate identifier 'category'
// ...
let category = { checked: false, id: 0 } // Error: Duplicate identifier 'category'

如何声明变量
类别
?未声明变量(代码为Javascript,正在移动到转录本)。该问题与循环无关。变量
category
的类型为
{}
,这就是为什么不能调用选中的成员
。请参阅示例。我以前尝试过:var category={checked:false,id:0};但是,这会产生错误消息:“后续变量声明必须具有相同的类型。变量”类别必须是类型“{}”,但这里有类型“{检查:布尔;ID:数字;}”@古洛考虑回答,以便这个问题可以得到妥善解决和包装。