Write-only references now flagged as unused

TypeScript 2.6 adds revised implementation the —noUnusedLocals and —noUnusedParameters compiler options.Declarations are only written to but never read from are now flagged as unused.

Example

Bellow both n and m will be marked as unused, because their values are never read. Previously TypeScript would only check whether their values were referenced.

  1. function f(n: number) {
  2. n = 0;
  3. }
  4. class C {
  5. private m: number;
  6. constructor() {
  7. this.m = 0;
  8. }
  9. }

Also functions that are only called within their own bodies are considered unused.

Example

  1. function f() {
  2. f(); // Error: 'f' is declared but its value is never read
  3. }