擴充診斷

未使用的 @let 宣告

這項診斷會偵測其值從未在範本中被讀取的 @let 宣告。

import {Component} from '@angular/core';

@Component({
  template: `
    @let fullName = user.firstName + ' ' + user.lastName;
    <h1>Welcome</h1>
  `,
})
class MyComponent {
  user = {firstName: 'Ada', lastName: 'Lovelace'};
}

這樣寫有什麼問題?

未使用的 @let 通常是重構後留下的殘餘,不然就是指出某個本來應該使用該值的地方。 即使 @let 沒有被使用,Angular 仍會在每次範本更新時求值它的運算式。例如,運算式中的函式呼叫仍然會執行。

我應該怎麼做?

使用該宣告,或是把它移除:

Prefer

使用該宣告

@Component({
  template: `
    @let fullName = user.firstName + ' ' + user.lastName;
    <h1>Welcome, {{ fullName }}</h1>
  `,
})
class MyComponent {
  user = {firstName: 'Ada', lastName: 'Lovelace'};
}
Prefer

移除該宣告

@Component({
  template: `<h1>Welcome</h1>`,
})
class MyComponent {}

如果無法避免,該怎麼辦?

可以透過編輯專案的 tsconfig.json 檔案來停用這項診斷:

{
  "angularCompilerOptions": {
    "extendedDiagnostics": {
      "checks": {
        "unusedLetDeclaration": "suppress"
      }
    }
  }
}

詳情請見擴充診斷設定。