typescript ts1206装饰器在此处无效,Angular 2

fjaof16o  于 2023-01-14  发布在  TypeScript
关注(0)|答案(3)|浏览(337)

我开始对Angular 2进行编程,但遇到一个错误:
ts1206装饰器在这里无效

@Component({   //  ts1206 decorators are not valid here
  selector: 'my-app',
  moduleId: module.id,
  templateUrl: 'app.component.html',
  styleUrls: ['app.component.css']
})
    • 更新日期:**

我的tsconfig. json:

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

我能用它做什么呢?

lkaoscv7

lkaoscv71#

装饰器必须直接位于导出类之前,例如:

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

这对于@Pipe@Directive@Injectable@NgModule也是一样的

2j4z5cfb

2j4z5cfb2#

当我使用Angular 路由并在@NgModule装饰器之后定义路由时,我遇到了这个错误。
我们需要在@NgModule装饰器之前定义路由或任何其他装饰器。

const appRoutes: Routes = [    // define this before @NgModule 
 { path: '',
   redirectTo: '/home',
   pathMatch: 'full'
 },
 { path: 'home', component: HomeComponent },
];

@NgModule({            // This Decorator should be just before an exported class 
declarations: [
 AppComponent,
 HeaderComponent,
 HomeComponent
],
imports: [
 BrowserModule,
 RouterModule.forRoot(
   appRoutes,
   { enableTracing: true } // <-- debugging purposes only
 )
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
icnyk63a

icnyk63a3#

在 @Component 上方添加接口或其他声明将解决此错误

相关问题