tslint - TypeScript-fel: foo är deklarerat men dess värde läses aldrig. TS6133


Något enkelt som kommer att få detta att hända.

let _tick = 0;
this.app.ticker.add( () => {
   moveSprites(dots);
   _tick += .2;
   return;
});

Tslint-alternativ är inställda på följande:

"rules": {
  "object-literal-sort-keys": false,
  "no-unused-variable": [true, {"ignore-pattern": "^_"}]
}

Från att ha sökt trodde jag att regeln skulle lösa det och tillåta att det ignorerades, men nej.

En lösning var att skriva det så här. Det kommer att gå igenom men det kommer sedan att klaga på att tick += .2 tilldelas men aldrig används. Dessutom ändrar detta beteendet.

this.app.ticker.add( (tick = 0) => {
   moveSprites(dots);
   tick += .2;
   return;
});

Sedan till slut hittade jag/@ts-ignore och det fungerade... Jag är ny på TypeScript och jag kan se att detta kan vara ett problem i situationer där man bara behöver hålla reda på ett variabelt tillstånd; bara sätter det. Jag ser också några konventioner att använda _var namn som skyddade klassfält men även för dessa situationer? Vad är rätt sätt? Jag gillar fördelarna med TS, men eftersom jag är ny spenderar jag mycket tid på att tillfredsställa ts-linten.

Svar #1

Du kan inaktivera kontrollinställningen noUnusedLocals genom att sätta den till false i din tsconfig.json-fil.

Ta en titt på kompilatoralternativen för mer information.

Relaterade artiklar