繁体   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