"Nodejs中'for...of' 语句的左侧不能使用类型批注。ts(2483)"
"Nodejs中’for…of’ 语句的左侧不能使用类型批注。ts(2483)"
我循环 map,不能指定数据类型?那咋玩儿
3 回复
类型应该可以 infer 吧,不用指定
左侧类型是取决数组类型吧,提前声明好数组类型。或者在循环内部加一个临时变量去定义成自己想要的类型。
在TypeScript中,for...of
语句的左侧确实不能使用类型批注,这是因为 for...of
的语法要求左侧必须是一个变量声明或者一个已存在的变量引用。类型批注在TypeScript中通常用于变量声明或者函数参数等地方,但在 for...of
循环中,类型信息通常可以通过迭代器的类型来推断。
如果你想要在 for...of
循环中明确指定元素的类型,你可以通过类型断言或者类型推断的其他方式来实现。这里有一个简单的例子,展示如何在不直接在 for...of
左侧使用类型批注的情况下,通过迭代器的类型来推断元素类型:
// 假设有一个数字数组
const numbers: number[] = [1, 2, 3, 4, 5];
// 使用 for...of 循环遍历数组
for (const num of numbers) {
// TypeScript 会自动推断 num 的类型为 number
console.log(num);
}
// 如果你想要更明确地表示类型(虽然通常不必要),可以通过类型断言来强化类型安全
for (const num of numbers as number[]) {
// 这里的 num 依然会被推断为 number 类型
// 类型断言主要用于其他需要明确类型但编译器无法直接推断的场景
console.log(num);
}
在这个例子中,numbers
数组已经被明确标注为 number[]
类型,因此 for...of
循环中的 num
变量会被自动推断为 number
类型,无需在循环左侧添加额外的类型批注。