앵귤러 라우터 학습 중 

TS1206: Decorators are not valid here. 라는 에러에 봉착했다.

 

@NgModule 부분이 빨간색으로 표시되면서

컴파일 이후 에러가 발생했다.

데코레이터이 위치가 잘못되었다는 것이다.

아래는 에러나는 소스이다.

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { LayoutComponent } from './layout/layout/layout.component';

import { RouterModule, Routes, Router } from '@angular/router';
import { TempListComponent } from './page/temp-list/temp-list.component';
import { TempDetailComponent } from './page/temp-detail/temp-detail.component';
import { IndexComponent } from './page/index/index.component';
@NgModule({
  declarations: [
    AppComponent,
    LayoutComponent,
    IndexComponent,
    TempListComponent,
    TempDetailComponent
  ],
  imports: [
    RouterModule.forRoot(appRoutes),
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
const appRoutes: Routes = [
  {path: '', redirectTo: 'index', pathMatch: 'full'},
  {path: 'index', component: IndexComponent},
  {path: 'temp',
    children: [
      {path: '', component: TempListComponent},
      {path: ':id', component: TempDetailComponent},
    ]
  },
];
export class AppModule {}

 

ERROR in src/app/app.module.ts(11,1): error TS1206: Decorators are not valid here.

 

이는 데코레이터에 대한 이해가 부족해서 생긴 에러이다.

라우터 설정 값을 추가하면서 데코레이터 아래에 클래스 선언부 위, 두 중간에 삽입해서 생긴 문제이다.

데코레이터는 클래스의 역할을 정의하고 메타데이터를 정의하는데 사용된다.

따라서 decorator와 class는 붙어 있어야 된다.

 

아래와 같이 router 설정을 위로 이동하면 해결이 되는 문제다.

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { LayoutComponent } from './layout/layout/layout.component';

import { RouterModule, Routes, Router } from '@angular/router';
import { TempListComponent } from './page/temp-list/temp-list.component';
import { TempDetailComponent } from './page/temp-detail/temp-detail.component';
import { IndexComponent } from './page/index/index.component';
const appRoutes: Routes = [
  {path: '', redirectTo: 'index', pathMatch: 'full'},
  {path: 'index', component: IndexComponent},
  {path: 'temp',
    children: [
      {path: '', component: TempListComponent},
      {path: ':id', component: TempDetailComponent},
    ]
  },
];
@NgModule({
  declarations: [
    AppComponent,
    LayoutComponent,
    IndexComponent,
    TempListComponent,
    TempDetailComponent
  ],
  imports: [
    RouterModule.forRoot(appRoutes),
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {}


 

 

 

 

 

+ Recent posts