请帮我解决问题。
"no-use-before-declare"
中的 tslint.json
是true
。而且我不允许更改它。
问题出在后面-“在声明前使用变量'foo'”构建错误。
代码可以简化为:
export class One {
toSecond() : Two {
return new Two();
}
}
export class Two {
toFirst() : One {
return new One();
}
}
是否可以以某种方式破解它以克服棉绒警告并获得相同的结果。有解决方法吗?
答案 0 :(得分:2)
您可以这样做:
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;
但是与仅用// tslint:disable-next-line:no-use-before-declare
抑制掉毛错误相比,IMO这是不合理的。 (而且,如果建议的here的strictLocalInitialization
选项成为strict
的一部分,则可能需要进一步更改。)
答案 1 :(得分:1)
此文件以前以bug on tslint的形式提交,解决方案是未吊起类并且不能在声明前使用它们。在这种情况下,规则是正确的。