【问题标题】:Understanding Order of Definitions in TypeScript/Angular JS了解 TypeScript/Angular JS 中的定义顺序
【发布时间】:2016-07-21 20:55:40
【问题描述】:

所以也许这是一个完全菜鸟的问题,但我是 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 定义在中间时,我是否需要添加一些特殊的语法?谢谢!

【问题讨论】:

    标签: javascript angularjs typescript angular


    【解决方案1】:

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

    当您在@ComponentAppComponent 之间有Hero 类时,您声明Hero,而不是AppComponent,是一个Angular 组件,因为Hero 是紧跟在@Component 之后的代码元素.

    【讨论】:

    • 哦,这很有道理。我把 @Component 看作是它自己独立的实体,而不是注解。我可能应该已经意识到,因为 Java XD 中的语法是相同的。 TypeScript 对我来说太陌生了!看,我告诉过你这是一个菜鸟问题。非常感谢,我今晚可以睡觉了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2019-10-19
    相关资源
    最近更新 更多