Ich habe eine Funktion, die auf der Grundlage einer bestimmten Disziplin, die übergeben wird, nach der aktuellen Stufe in einem sequentiellen Stream sucht und entsprechend diesem Wert den nächsten Wert zuweist meine Angular 2 App. Es sieht etwa so aus:Sense of 'No Shadowed Variable' Warnung tslint
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;
}
Was ich hier mache den Wert von „nextStageStep“ zurückkehrt, denn das ist, was werde ich dann für die richtige Stufe Schritt, um vorbei zu passieren.
Im Moment unterstreicht meine tslint jede der "nextStageStep" Variablenvorkommen mit der Warnung "no shadowed variables". Wenn ich die Zeile, in der ich initialisiere, auf einen leeren String lösche, verschwindet diese Warnung, aber dann bekomme ich den Fehler "NextStageStep kann nicht gefunden werden" in meiner Return-Anweisung.
Was ist das Problem mit der ursprünglichen Shadowed Variable Warnung, und gibt es eine alternative Möglichkeit, dies zu schreiben, und/oder sollte ich einfach die tslint Warnung in dieser Situation ignorieren?
gut ja, weil es eine Konstante ist. ändere es in ein let oder var – toskv