angular 6:不带'的类声明;默认值';修饰符必须有一个名称

angular 6:不带'的类声明;默认值';修饰符必须有一个名称,angular,typescript,ionic-framework,angular6,Angular,Typescript,Ionic Framework,Angular6,我的ts.file中出现了这种错误,这可能是我刚刚开始学习角度/离子世界的原因 我尝试了各种方法来清除它,但没有运气 import { Component } from '@angular/core'; import { NavController, NavParams } from '@ionic/angular'; import {Announcements} from '../../../environments/environment'; import {AngularFireAuth

我的
ts.file
中出现了这种错误,这可能是我刚刚开始学习角度/离子世界的原因


我尝试了各种方法来清除它,但没有运气

import { Component } from '@angular/core';
import { NavController, NavParams } from '@ionic/angular';
import {Announcements} from '../../../environments/environment';
import {AngularFireAuth} from 'angularfire2/auth';
import {AngularFireDatabase} from 'angularfire2/database';
import { take } from 'rxjs/operators';
import { Directive, HostListener, ElementRef } from '@angular/core';

@Component({
  selector: 'app-add-our-announcements',
  templateUrl: './add-our-announcements.page.html',
  styleUrls: ['./add-our-announcements.page.scss'],
})
@Directive({
  selector: 'ion-textarea[autosize]' // Attribute selector,
})
export class {

    constructor(
      private afauth: AngularFireAuth,
      private afDatabase: AngularFireDatabase,
      public navCtrl: NavController,
      public navParams: NavParams,
      public element: ElementRef) {
    }

   announcements = {} as Announcements;

  @HostListener('document:keydown.enter', ['$event']) onKeydownHandler() {
    this.adjust();
  }

  AfterViewInit() {
      this.adjust();
    }

    adjust(): void {
      const textArea = this.element.nativeElement.getElementsByTagName('textarea')[0];
      textArea.style.overflow = 'hidden';
      textArea.style.height = 'auto';
      textArea.style.height = (textArea.scrollHeight + 42) + 'px';
    }



        createAnnouncements() {
            this.afauth.authState.pipe(take(1)).subscribe(() => {
              this.afDatabase.list(`announcements`).push(this.announcements)
                .then(() => this.navCtrl.navigateForward('ListOfOurAnnouncementsPage'));
            });
        }

  }

您的类没有名称。 例:

请看

还可以查看编码规范

按照描述组件特性的模式,然后是描述组件类型的模式,对所有组件使用一致的类型名称。推荐的模式是feature.type.ts

请使用常规类型名称,包括.service、.component、.pipe、, .module和.directive。如果必须,请发明其他类型名称 注意不要制造太多

为什么??类型名称提供了一种一致的方法来快速识别 在文件中

为什么??类型名称使使用 编辑器或IDE的模糊搜索技术

为什么??未命名的类型名称(如.service)是描述性的,并且 毫不含糊的可以使用缩写,例如.srv、.svc和.serv 令人困惑


根据错误提示,为类提供名称<代码>导出类MyClassName此处我现在收到这样的错误“类的名称AddOurAnnouncementsPage应该以后缀指令结尾”谢谢,我刚刚在类中添加了一个名称,现在它带来了错误“类的名称AddOurAnnouncementsPage应该以后缀指令结尾”是,您的类名应该附带
指令
。通常,类名应以类的类型结尾。例如:一个组件类应该有一个名称:
MyButtonComponent
,一个指令应该是
addourannouncementsddirective
,依此类推。是的,我刚刚将该指令添加到名称中,现在它正在提醒我“AddOurAnnouncementsPageDirective”指令的选择器应该有前缀“app”“是,这些是在tslint.json中定义的ts lint规则。您可以将“app”添加到选择器EX:
选择器:“app-ion-textarea[autosize]”
,也可以通过删除或修改tslint.json中的此规则来禁用该选项。这是一个让指令选择器使用应用程序的标准,您也可以向它添加任何其他值。例如:
“指令选择器”:[true,“attribute”、[“myapp”、“myname”]、“camelCase”]、“component selector”:[true,“element”、[“myapp”、“myname”]、“kebab case”],
感谢您对nkuma_12的持续反馈,我已经尝试了这两种方法,但没有改变错误
@Directive({
         selector: 'ion-textarea[autosize]' // Attribute selector,
     })


 export class TextAreaDirective {

     constructor() {
}