70 votes

Ts1206 décorateurs ne sont pas valides ici, Angular 2

J'ai commencé à programmer Angular 2 et je suis bloqué avec une erreur :

ts1206 les décorateurs ne sont pas valides ici

@Component({   //  ts1206 les décorateurs ne sont pas valides ici 
  selector: 'my-app',
  moduleId: module.id,
  templateUrl: 'app.component.html',
  styleUrls: ['app.component.css']
})

Mise à jour :

Mon tsconfig.json :

 {
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
  }
}

que puis-je en faire ?

12 votes

Le @Component() doit être directement placé avant une classe, avez-vous une classe exportée juste en dessous de ce décorateur?

0 votes

Qu'y a-t-il dans votre tsconfig.json ?

0 votes

Veuillez traduire cet article de démarrage rapide - angular.io/docs/ts/latest/quickstart.html

162voto

Jarod Moser Points 3818

Les décorateurs doivent venir directement avant une classe exportée par exemple :

@Component({
    ...
})
export class someComponent{}

cela fonctionne de la même manière pour @Pipe @Directive @Injectable et @NgModule

2 votes

L'ordre est important. J'avais une interface d'exportation juste après mon Injectable et j'ai obtenu cette erreur. Déplacer la classe d'exportation juste après la directive Injectable et l'interface après a résolu le problème.

3voto

Shubham Jain Points 69

Cette erreur m'est apparue lorsque j'ai utilisé le routage angulaire et défini des routes après le décorateur @NgModule.

Nous devons définir des routes ou tout autre décorateur avant le décorateur @NgModule.

const appRoutes: Routes = [    // définir ceci avant @NgModule 
 { path: '',
   redirectTo: '/home',
   pathMatch: 'full'
 },
 { path: 'home', component: HomeComponent },
];

@NgModule({            // Ce décorateur doit être juste avant une classe exportée 
declarations: [
 AppComponent,
 HeaderComponent,
 HomeComponent
],
imports: [
 BrowserModule,
 RouterModule.forRoot(
   appRoutes,
   { enableTracing: true } // <-- uniquement à des fins de débogage
 )
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }

0voto

Smita Points 1

Ajoutez une interface ou une autre déclaration au-dessus de @component. Cela corrigera l'erreur.

0voto

yong hu Points 11

Interface Props{ ... }

@Component({ ... })

export class someComponent{}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X