Javascript 从一个函数调用另一个函数,反之亦然,抱怨在定义之前使用过

Javascript 从一个函数调用另一个函数,反之亦然,抱怨在定义之前使用过,javascript,typescript,Javascript,Typescript,在某些情况下,我需要从B调用A,从A调用B,但Linter抱怨“在定义之前使用”,下面是ts代码: function _A () { if (x) { B(); // used befre defined } ... } function B () { if (y) { _A(); } ... } 如果我先定义B,那么它会在A中抱怨。 另请注意_A是一个私有方法,B将从此文件导出。您的代码工作正常,因为函数声明被挂

在某些情况下,我需要从B调用A,从A调用B,但Linter抱怨“在定义之前使用”,下面是ts代码:

function _A () {
    if (x) {
        B(); // used befre defined
    }
    ...
}
function B () {
    if (y) {
        _A();
    }
    ...
}
如果我先定义B,那么它会在A中抱怨。
另请注意_A是一个私有方法,B将从此文件导出。

您的代码工作正常,因为函数声明被挂起

由于linter在那里帮助您遵循最佳实践,但在这种情况下,您所做的是完全有效的,并且是有意的,可能是以下情况之一:


您也可以考虑完全禁用,如果您认为它对您的项目没有帮助或配置不同。

< P>您的代码工作正常,因为函数声明被吊起。

由于linter在那里帮助您遵循最佳实践,但在这种情况下,您所做的是完全有效的,并且是有意的,可能是以下情况之一:


您也可以考虑完全禁用,如果您认为它对您的项目没有帮助或配置不同。

< P>如果您不想禁用该规则,这将起作用:

let A, B;

A = () => {
  B();
}

B = () => {
  A();
}


如果您不想禁用该规则,这将起作用:

let A, B;

A = () => {
  B();
}

B = () => {
  A();
}


您的代码片段很好。。。请添加更多信息和上下文,也许还有一个可复制的示例。It's linting error您使用的是什么linter?您的代码片段很好。。。请添加更多信息和上下文,可能还有一个可复制的示例。It’s linting Error那么您使用的是什么linter?您只是在提升他们的声明,JS已经为您做了,这就是代码首先工作的原因。虽然你的回答是正确的,我同意禁用linting规则很少不是一个好办法,但我认为在这种情况下,最好的选择是使用
tslint:disable next line:no use before define
在特定行上禁用该特定规则,而不是混淆代码来欺骗linter。@Danziger是的,我同意这一点,对你的答案投了赞成票。只是想提供一个替代的解决方案你只是在提升他们的声明,JS已经为你做了,这就是为什么代码首先起作用。虽然你的回答是正确的,我同意禁用linting规则很少不是一个好办法,但我认为在这种情况下,最好的选择是使用
tslint:disable next line:no use before define
在特定行上禁用该特定规则,而不是混淆代码来欺骗linter。@Danziger是的,我同意这一点,对你的答案投了赞成票。只是想提供一个替代方案