【问题标题】:Understanding typescript syntax in Angular 4了解 Angular 4 中的打字稿语法
【发布时间】:2018-07-21 08:59:05
【问题描述】:

我是 Angular 4 和 Typescript 的新手。我遵循了 Angular.io 网站上提供的“Angular-tour-of-heroes”教程。由于 Angular 4 使用 typescript 来定义组件等,我想更多地了解 typescript,所以我在互联网上寻找文档。当我阅读“http://devdocs.io/typescript/”上提供的打字稿文档时,我更加困惑。当我比较文档和 Angular 代码中给出的语法时,我发现了很多不同之处。

1) 函数是用'function'关键字声明的,但在Angular中,函数不是用'function'关键字声明的。

2) 在文档中使用 'let' 关键字声明类型,但在 Angular 中没有 'let' 关键字。

这样的区别很多。所以,我很困惑在哪里可以找到 TypeScript 的文档(以及为什么 Angular 使用不同的语法。

【问题讨论】:

  • 我不知道为什么这被否决了。这不是编程问题吗?这个问题有什么问题?。
  • 在你理解 javascript 之前,不要学习 typescript、angular 或任何与 javascript 相关的东西,简单明了,尽管我没有否决你的问题

标签: angular typescript typescript-typings


【解决方案1】:

"1) 函数是用'function'关键字声明的,但在Angular中,函数不是用'function'关键字声明的。”

Angular 基于 classes(ES6 特性),每个 Angular 组件都是一个类。在类中,你不需要function 关键字来声明一个方法,你可以写yourMethod() {//do stuff},它是一个有效的语法。

"2) 类型在文档中使用 'let' 关键字声明,但在 Angular 中没有 'let' 关键字。”

letconst 也是 ES6 特性,它们类似于常规的 var,但有一些区别。在 Angular 中,您通常在方法内部或类外部使用这些关键字,所以它们就在这里,只是您还没有看到它们。

“为什么 Angular 使用不同的语法”

没有区别:Angular 是在 Typescript 上编写的,别忘了 Angular - 是一个框架,用 Angular 开发和用普通的 Javascript 或 Typescript 开发是不一样的,但是如果您了解 ES6 和 Typescript - 了解 Angular 组件中的一般情况不会有什么大不了的。

所以我的建议是:

1.学习 ES6

2。学习打字稿

然后开始学习 Angular。

【讨论】:

  • 好的。我现在明白了!。
  • @KurioZ7 很高兴听到这个答案有帮助
【解决方案2】:

你试过official TypeScript documentation吗?

另外,就我而言,ng-book2 非常适合初学者入门。您也可以在其中阅读有关 TypeScript 的信息。

而且,非常重要的是,Angular 4 没有必要使用最新的 TypeScript 版本。因此,Angular 4 中还不能实现一些功能。通常,在更新日志中有关于它的信息。

【讨论】:

    【解决方案3】:

    首先,Angular 使用普通的 Typescript。没有 Angular 特定的打字稿。而 Typescript 是 Javascript + Type。

    接下来,回答以下问题:

    1) 函数是用'function'关键字声明的,但在Angular中,函数不是用'function'关键字声明的。

    请阅读并理解 Javascript 类:http://2ality.com/2015/02/es6-classes-final.html。类中的函数不需要用function 关键字声明。这是标准的 javascript。

    2) 在文档中使用 'let' 关键字声明类型,但在 Angular 中没有 'let' 关键字。

    Javascript 类中的属性不需要用letconst 声明。请阅读并理解 Javascript 类:http://2ality.com/2015/02/es6-classes-final.html。例如。

    class Something { constructor() { this.greet = 'hey' } }
    

    另外,使用 Typescript,属性是这样定义的。阅读有关 Typescript 类的更多信息。 https://www.sitepen.com/blog/2014/08/22/advanced-typescript-concepts-classes-types/

    class Something { greet:string; constructor() { this.greet = 'hey' } }
    

    再一次,Angular 没有选择任何不同的语法。这是普通的 Typescript 和 Javascript。

    Todd Motto 有一些关于 Typescript 的好文章。在这里查看:https://toddmotto.com/resources/typescript

    【讨论】:

    • 您提到“这是普通的 Typescript 和 Javascript”。如果是这样,您能帮我理解一下,如何区分 .ts 文件中的 typescript 和 javascript?。
    猜你喜欢
    • 2019-02-07
    • 2019-04-18
    • 1970-01-01
    • 2021-02-04
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    相关资源
    最近更新 更多