了解 Angular 4 中的打字稿语法

Understanding typescript syntax in Angular 4

我是 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 使用不同的语法。

你试过了吗official TypeScript documentation

此外,对于我来说,ng-book2 非常适合初学者入门。您也可以在其中阅读有关 TypeScript 的内容。

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

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

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

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

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

"Why Angular uses a different syntax"

没有区别:Angular 是用 Typescript 编写的,不要忘记 Angular - 是一个 框架 ,并且使用 Angular 与使用常规 Javascript 或 Typescript 进行开发不同,但是如果您了解 ES6 和 Typescript - 了解 [=56= 中通常发生的事情并不是什么大问题] 组件。

所以我的建议是:

1.学习 ES6

2。学习打字稿

然后开始学习Angular.

首先,Angular使用普通的Typescript。有 none Angular 特定的 Typescript。 Typescript 是 Javascript + Type.

接下来,回答您的问题:

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

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

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

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

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

另外,在Typescript中,属性是这样定义的。阅读更多关于 Typescript class 的内容。 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