请帮我解决这个问题。
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提交的,解决方案是类不会被提升,在声明之前不能使用。这种情况下的规则是正确的。