![](/img/trans.png)
[英]How do I implement OnInit without getting error: Class is using Angular features but is not decorated. Please add an explicit Angular decorator
[英]Angular Library base class without any decorator but using Angular features
我在 Angular 遷移指南中遇到了這個問題。
https://angular.io/guide/migration-undecorated-classes
我是圖書館作者。 我應該將 @Directive() 裝飾器添加到基類嗎?
由於 Angular 版本 9 中引入了對無選擇器裝飾器的支持,如果您想支持 Angular 版本 8 及更早版本,則不應添加無選擇器 @Directive() 裝飾器。 您可以使用選擇器添加 @Directive() 或將特定於 Angular 的功能移動到受影響的子類。
然后我檢查了我們的代碼庫,發現有些基類仍然沒有任何裝飾器,但在 Angular V11 中運行。 我沒有看到任何編譯錯誤或 linting 錯誤。
有許多這樣的基類使用 angular 特性、主機綁定等,但仍然沒有裝飾器。 是否有 linting 規則或某種方法可以捕捉到這些?
后來我發現,使用 Ivy 編譯器,這樣的沒有裝飾器的類在編譯時會被捕獲: NG2007: Class 正在使用 Angular 功能,但沒有裝飾。 請添加一個顯式的 Angular 裝飾器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.