這項診斷會偵測其值從未在範本中被讀取的 @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"
}
}
}
}
詳情請見擴充診斷設定。