理解TypeScript / Angular JS中的定义顺序

时间:2016-07-21 20:55:41

标签: javascript angularjs typescript angular

所以也许这是一个总的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定义位于中间时,是否需要添加一些特殊语法?谢谢!

1 个答案:

答案 0 :(得分:2)

@Component或以@符号开头的任何类似事物是一种称为注释的特殊语言元素。它与紧随其后的代码元素(类,变量等)相关联,并指定关于该代码元素的某种元数据。在这种情况下,@Component指定它所附加的类是Angular组件。

当您在Hero@Component之间有AppComponent课程时,您声明Hero而不是AppComponent是Angular组件,因为{{ 1}}紧跟在Hero之后的代码元素。