這項診斷會偵測寫反的「banana-in-box」語法,也就是雙向繫結的錯誤寫法。
<user-viewer ([user])="loggedInUser" />
這樣寫有什麼問題?
以目前的寫法來看,([var]) 實際上是一個名稱為 [var] 的事件繫結。
作者很可能原本想寫的是對名為 var 的變數做雙向繫結,但照這樣寫,這個繫結不會有任何效果。
我應該怎麼做?
修正這個打字錯誤。
顧名思義,香蕉 ( 應該放在盒子 [] 的_裡面_。
在本例中應寫成:
<user-viewer [(user)]="loggedInUser" />
設定需求
任何擴充診斷要發出訊息,都必須啟用 strictTemplates。
invalidBananaInBox 除了 strictTemplates 之外,沒有其他額外需求。
如果無法避免,該怎麼辦?
可以透過編輯專案的 tsconfig.json 檔案來停用這項診斷:
{
"angularCompilerOptions": {
"extendedDiagnostics": {
"checks": {
"invalidBananaInBox": "suppress"
}
}
}
}
詳情請見擴充診斷設定。