簡體   English   中英

Class 正在使用 Angular 功能,但未在 angular 14 中進行修飾

[英]Class is using Angular features but is not decorated in angular 14

我已將我的 angular 應用程序從 13 更新到 14。更新后,我在 vs 代碼中打開組件 class 后出現以下錯誤。

Class 正在使用 Angular 功能但未修飾。 請添加一個明確的 Angular 裝飾器

我檢查過這個問題

但我沒有在應用程序中使用任何慣性。

在此處輸入圖像描述

但是應用程序運行完美。 如何消除該錯誤?

ts.confing

/* 要了解有關此文件的更多信息,請參閱: https://angular.io/config/tsconfig */

{
  "compileOnSave": false,
  "compilerOptions": {
    
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "forceConsistentCasingInFileNames": false,
    "strict": false,
    "allowSyntheticDefaultImports":true, 
    "noImplicitOverride": true,
    "noPropertyAccessFromIndexSignature": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "sourceMap": true,
    "declaration": true,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2022",
    "module": "es2022",
    "lib": [
      "es2022",
      "dom"
    ],
    "paths": {
      "stream": [ "./node_modules/stream-browserify" ]
    },
  },
  "angularCompilerOptions": {
    "enableI18nLegacyMessageIdFormat": false,
    "strictInjectionParameters": true,
    "strictInputAccessModifiers": true,
    "strictTemplates": false,
  }
}

驗證組件

import { Component, Input } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { ValidationService } from 'src/app/core/services/validation.service';

@Component({
  selector: 'app-validation-message',
  template: '<div *ngIf="errorMessage !== null" style="width:50%;margin-top:.25rem;font-size:80%;color:#dc3545">{{errorMessage}}</div>'
})

export class ValidationMessageComponent {
  @Input() control: AbstractControl;

  constructor() {
  }

  get errorMessage() {
    if (this.control.errors) {
    
      for (let propertyName in this.control.errors) {
        if (this.control.errors.hasOwnProperty(propertyName) && this.control.touched) {
          return ValidationService.getValidatorErrorMessage(propertyName, this.control.errors[propertyName]);
        }
      }
    }
    return null;
  }
}

有同樣的問題。 Typescript 從 4.7.4 降級到 4.7.2 解決了這個問題。

npm i typescript@4.7.2

這是由於 Angular 語言服務擴展,它不支持 Typescript 4.8 ,請在此處查看相關問題: https://github.com/issue-angular/17service46

我遇到了同樣的問題,我通過降級 typescript 依賴項來解決它:

"@typescript-eslint/eslint-plugin": "5.29.0",
"@typescript-eslint/parser": "5.29.0",
"typescript": "4.7.2"

現在錯誤消失了,一切正常

與 Angular 15 相同的問題。這次將 typescript 從 4.8.2 升級到 4.8.4 解決了問題。

最初我遇到這個問題時有 typescript 4.8.4。 看完這里后,我降級到 4.7.2,沒用; 然后我回到 4.8.4,有趣的是它起作用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM