Вызов одной функции из другой и наоборот, жалуясь на использование ранее определенного - PullRequest
1 голос
/ 06 мая 2020

В определенных условиях мне нужно вызвать A из B и B из A, но Линтер жалуется на «Используется перед определением», вот код ts:

function _A () {
    if (x) {
        B(); // used befre defined
    }
    ...
}
function B () {
    if (y) {
        _A();
    }
    ...
}

Если я сначала определю B, то он жалуется на A. Также обратите внимание, что _A - это частный метод, и B будет экспортирован из этого файла.

Ответы [ 2 ]

4 голосов
/ 06 мая 2020

Ваш код работает нормально, потому что объявления функций подняты.

Поскольку линтер существует, чтобы помочь вам следовать лучшим практикам, но в этом случае то, что вы делаете, совершенно верно и задумано, возможно, это один из в тех случаях, когда можно отключить это правило :

if (x) {
    // tslint:disable-next-line:no-use-before-define
    B();
}

Вы также можете полностью отключить это правило , если вы считаете, что это не помогает для вашего проекта или настроив иначе.

1 голос
/ 06 мая 2020

Если вы не хотите отключать это правило, это сработает:

let A, B;

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

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

игровая площадка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...