所以也许这是一个总的noob问题,但我是Angular JS和TypeScript的总菜鸟。我正在浏览Angular的英雄教程(这里有一个Plunker:https://angular.io/resources/live-examples/toh-1/ts/plnkr.html)。如果在开头(导入行之后)或文件结尾定义了Hero类,则它运行正常;但是,如果它在@Component和AppComponent之间定义,则JS会在运行时抛出以下异常:"在AppComponent"上找不到指令注释。我对TypeScript和/或Angular JS不够了解,无法理解为什么会这样。为什么订单如此重要?当Hero定义位于中间时,是否需要添加一些特殊语法?谢谢!
答案 0 :(得分:2)
@Component
或以@
符号开头的任何类似事物是一种称为注释的特殊语言元素。它与紧随其后的代码元素(类,变量等)相关联,并指定关于该代码元素的某种元数据。在这种情况下,@Component
指定它所附加的类是Angular组件。
当您在Hero
和@Component
之间有AppComponent
课程时,您声明Hero
而不是AppComponent
是Angular组件,因为{{ 1}}紧跟在Hero
之后的代码元素。