我的代码:
function test() {
let value: number;
for (let i = 0; i < 10; i++) {
value = i;
console.log(value);
return value;
test();
得到了这个:
Variable 'value' is used before being assigned
我发现这很奇怪,因为我看到了其他类似的问题,它们要么使用回调,要么使用允诺,或者使用其他异步方法,而我只使用同步for循环。
function test() {
let value: number;
for (let i = 0; i < 100; i++) {
// a() is very expensive and with some effects
const result = a(i)
if(i===99) {
value = result
return value;
}
发布于 2021-11-19 03:04:49
发布于 2021-11-19 03:05:24
TypeScript不能推断循环体中的任何东西都在运行--它不检查
i
是否从0开始,条件是
i < 10
,因此身体至少会运行一次。此行为非常类似于以下内容:
function test() {