在声明之前使用的变量'Foo'。两类相互依存



请帮我解决这个问题。

CCD_ 2中的CCD_ 1是CCD_。我不能更改它。

问题如下-"变量'foo'在声明之前使用"生成错误。

代码可以简化为:

export class One {
toSecond() : Two {
return new Two();
}
}
export class Two {
toFirst() : One {
return new One();
}
}

它会不会以某种方式被黑客入侵,以克服linter警告并获得相同的结果。有什么变通办法吗?

你可以做:

let Two_forward: typeofTwo;
export class One {
toSecond() : Two {
return new Two_forward();
}
}
export class Two {
toFirst() : One {
return new One();
}
}
// Work around https://github.com/palantir/tslint/issues/3655
type typeofTwo = typeof Two;
Two_forward = Two;

但是IMO与仅利用CCD_ 4抑制皮棉误差相比,这是不合理的。(如果此处提出的strictLocalInitialization选项成为strict的一部分,则可能需要进一步更改。(

这是以前在tslint上作为bug提交的,解决方案是类不会被提升,在声明之前不能使用。这种情况下的规则是正确的。

最新更新