声明前使用变量“ Foo”。两类相互依存

时间:2018-10-29 16:39:16

标签: angularjs typescript tslint

请帮我解决问题。

"no-use-before-declare"中的

tslint.jsontrue。而且我不允许更改它。

问题出在后面-“在声明前使用变量'foo'”构建错误。

代码可以简化为:

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

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

是否可以以某种方式破解它以克服棉绒警告并获得相同的结果。有解决方法吗?

2 个答案:

答案 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这是不合理的。 (而且,如果建议的herestrictLocalInitialization选项成为strict的一部分,则可能需要进一步更改。)

答案 1 :(得分:1)

此文件以前以bug on tslint的形式提交,解决方案是未吊起类并且不能在声明前使用它们。在这种情况下,规则是正确的。