У меня есть функция, которая проверяет текущий этап в последовательном потоке, основываясь на конкретной дисциплине, которая передается, и, согласно этому значению, назначает следующее значение в моем приложении Angular 2. Это выглядит примерно так:
private getNextStageStep(currentDisciplineSelected) {
const nextStageStep = '';
if (this.stageForDiscipline(this.currentDisciplineSelected) === 'step 1') {
const nextStageStep = 'step 2';
} else if (this.stageForDiscipline(this.currentDisciplineSelected) === 'step 2') {
const nextStageStep = 'step 3';
} else if (this.stageForDiscipline(this.currentDisciplineSelected) === 'step 3') {
const nextStageStep = 'step 4';
} else if (this.stageForDiscipline(this.currentDisciplineSelected) === 'step 4') {
const nextStageStep = 'step 5';
} else if (this.stageForDiscipline(this.currentDisciplineSelected) === 'step 5') {
const nextStageStep = 'step 6';
}
return nextStageStep;
}
То, что я здесь делаю, возвращает значение "nextStageStep", потому что это то, что я буду потом, чтобы сделать правильный шаг шага.
Прямо сейчас, мой tslint подчеркивает каждое из событий "nextStageStep" с предупреждением "без теневых переменных". Если я удалю строку, где я инициализирую пустую строку, это предупреждение исчезнет, но затем я получаю сообщение об ошибке "Не могу найти nextStageStep", появляющееся в моей инструкции return.
В чем проблема с первоначальным предупреждением о затененной переменной, и есть ли альтернативный способ написать это, и/или я должен просто игнорировать предупреждение tslint в этой ситуации?