擴充診斷

不正確的 Banana-in-Box 語法

這項診斷會偵測寫反的「banana-in-box」語法,也就是雙向繫結的錯誤寫法。

<user-viewer ([user])="loggedInUser" />

這樣寫有什麼問題?

以目前的寫法來看,([var]) 實際上是一個名稱為 [var] 的事件繫結。 作者很可能原本想寫的是對名為 var 的變數做雙向繫結,但照這樣寫,這個繫結不會有任何效果。

我應該怎麼做?

修正這個打字錯誤。 顧名思義,香蕉 ( 應該放在盒子 [] 的_裡面_。 在本例中應寫成:

<user-viewer [(user)]="loggedInUser" />

設定需求

任何擴充診斷要發出訊息,都必須啟用 strictTemplates。 invalidBananaInBox 除了 strictTemplates 之外,沒有其他額外需求。

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

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

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

詳情請見擴充診斷設定。