在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文整理自Dan Wahlin在ng-conf上的talk。原视频地址: https://www.youtube.com/watch?v=e3djIqAGqZo 开场白开场白主要分为三部分:
由于开场白内容不太重要,所以不再详述。下面开始讲解Dan Wahlin最喜欢的TypeScript的特性。 类型支持(Type Support)让我们来聊下类型支持吧!先打开TypeScript Playground,我们会看到一个非常简单的例子。 左边是TypeScript,右边是编译后的JavaScript,它俩差异很大吗?并不是,呵呵!不过用来讲解类型支持还是不错的。我们给 这太基础了!不过,事实上我们可以通过类型支持做更多的事情!你可以使用主要的几种类型: 上述例子中, 那么为何要使用类型?比如在写ng2组件时,你想通过 很明显,这是个非常简单的例子。让我们来聊点更有用的特性! 工具支持(Tooling Support)TypeScript中有个很酷的特性就是工具支持,因为我们可以以此明确数据类型。比如,调用Promise去获取数据,想知道得到了什么? 你得去查看JSON的格式,这在TypeScript神奇的智能提示的帮助下(很多编辑器都支持TypeScript的智能提示,比如Webstorm、VSC、Atom等)会变得非常容易。我要给你展示的例子返回了一个Obserable。当我输入 让我们总结下工具支持的几个主要特性:
接下来,我们来看下编辑器。这是个名叫 但真正酷的是,如果我想知道HTTP里都有啥,我可以选择“Peek Definition”,然后就跳转到了定义特定类型的位置,于是我又得到了一些有用信息。 我还可以知道有多少人调用了getCustomers这个方法,只需要点击“Find All References”即可。 接口(Interfaces)让我们来聊下接口吧,这是TypeScript的另一个秘密武器。接口是个非常棒的技术,在JavaScript中无法直接使用它,但在TypeScript中却可以。接口在ng2里被重度使用。如果你第一次接触接口,我会通过代码合约(Code Contract)这个概念来向你解释。代码合约就是说,你被告知要造一个这样的零件,而不是那样的零件。 在开发过程中,我们经常会遇到一个情况,就是开发者开发完的成品并不是我们想要的。通过接口,我可以非常明确,你应该传递给我什么。这是个接口的例子: 我们定义了一个 这太基础了,让我们回到刚才的代码示例。当我直接在 接口的另一个用法是这样的。比如,你把 然后,我们就得到了错误提示。当我们将 泛型(Generics)让我们继续讲解泛型这个秘密武器吧!泛型也非常好用,有人在其他语言中用过泛型吗(然后他把手放到眼上,作远眺状)?泛型是个代码模板(Code Template)。如果你家有小孩,你一定知道曲奇饼干和曲奇饼干成型机(比如图中的剑型)。假如我在用小刀刻了一些字符,比如Halloween。当刻了一两个字符之后,你说突然要换一套方案,这就难办了!所以,你应该刻一些像图中的剑型那样的东西,这样便于你复用(他的这个例子举得不太好,不过大家只需关注“模板”和“复用”这两个关键词即可,因为这也是泛型的特点)。 泛型能以多种方式被使用,其中一种方式是,如果你有一个 让我们回到 提前使用未来特性(The Future Today)最后一个秘密武器是提前使用未来特性。JavaScript现今以每年的频率来发布新特性,但是浏览器不能完全支持它们。所以我认为我们一直处于一个“举债经营”的模式,比如使用Typescript。因为我们不想用最低版本的JavaScript,而是想用一些新特性。我们已经在Angular2中做了这些事情,比如使用装饰器(Decorators),我们用装饰器编写组件或Injectable等。还可以使用一些未来的特性,比如async/await(一种新的处理异步的方式)等。 回顾让我们做个回顾吧!我们讲解了TypeScript的这几个方面:类型支持、工具支持、接口、泛型以及提前使用未来特性。 很感谢你们听我的演讲,希望你们可以用TypeScript编写App,谢谢! 教程源代码及目录本文整理自Dan Wahlin在ng-conf上的talk。原视频地址: https://www.youtube.com/watch?v=e3djIqAGqZo 开场白开场白主要分为三部分:
由于开场白内容不太重要,所以不再详述。下面开始讲解Dan Wahlin最喜欢的TypeScript的特性。 类型支持(Type Support)让我们来聊下类型支持吧!先打开TypeScript Playground,我们会看到一个非常简单的例子。 左边是TypeScript,右边是编译后的JavaScript,它俩差异很大吗?并不是,呵呵!不过用来讲解类型支持还是不错的。我们给 这太基础了!不过,事实上我们可以通过类型支持做更多的事情!你可以使用主要的几种类型: 上述例子中, 那么为何要使用类型?比如在写ng2组件时,你想通过 很明显,这是个非常简单的例子。让我们来聊点更有用的特性! 工具支持(Tooling Support)TypeScript中有个很酷的特性就是工具支持,因为我们可以以此明确数据类型。比如,调用Promise去获取数据,想知道得到了什么? 你得去查看JSON的格式,这在TypeScript神奇的智能提示的帮助下(很多编辑器都支持TypeScript的智能提示,比如Webstorm、VSC、Atom等)会变得非常容易。我要给你展示的例子返回了一个Obserable。当我输入 让我们总结下工具支持的几个主要特性:
接下来,我们来看下编辑器。这是个名叫 但真正酷的是,如果我想知道HTTP里都有啥,我可以选择“Peek Definition”,然后就跳转到了定义特定类型的位置,于是我又得到了一些有用信息。 我还可以知道有多少人调用了getCustomers这个方法,只需要点击“Find All References”即可。 接口(Interfaces)让我们来聊下接口吧,这是TypeScript的另一个秘密武器。接口是个非常棒的技术,在JavaScript中无法直接使用它,但在TypeScript中却可以。接口在ng2里被重度使用。如果你第一次接触接口,我会通过代码合约(Code Contract)这个概念来向你解释。代码合约就是说,你被告知要造一个这样的零件,而不是那样的零件。 在开发过程中,我们经常会遇到一个情况,就是开发者开发完的成品并不是我们想要的。通过接口,我可以非常明确,你应该传递给我什么。这是个接口的例子: 我们定义了一个 这太基础了,让我们回到刚才的代码示例。当我直接在 接口的另一个用法是这样的。比如,你把 然后,我们就得到了错误提示。当我们将 泛型(Generics)让我们继续讲解泛型这个秘密武器吧!泛型也非常好用,有人在其他语言中用过泛型吗(然后他把手放到眼上,作远眺状)?泛型是个代码模板(Code Template)。如果你家有小孩,你一定知道曲奇饼干和曲奇饼干成型机(比如图中的剑型)。假如我在用小刀刻了一些字符,比如Halloween。当刻了一两个字符之后,你说突然要换一套方案,这就难办了!所以,你应该刻一些像图中的剑型那样的东西,这样便于你复用(他的这个例子举得不太好,不过大家只需关注“模板”和“复用”这两个关键词即可,因为这也是泛型的特点)。 泛型能以多种方式被使用,其中一种方式是,如果你有一个 让我们回到 提前使用未来特性(The Future Today)最后一个秘密武器是提前使用未来特性。JavaScript现今以每年的频率来发布新特性,但是浏览器不能完全支持它们。所以我认为我们一直处于一个“举债经营”的模式,比如使用Typescript。因为我们不想用最低版本的JavaScript,而是想用一些新特性。我们已经在Angular2中做了这些事情,比如使用装饰器(Decorators),我们用装饰器编写组件或Injectable等。还可以使用一些未来的特性,比如async/await(一种新的处理异步的方式)等。 回顾让我们做个回顾吧!我们讲解了TypeScript的这几个方面:类型支持、工具支持、接口、泛型以及提前使用未来特性。 很感谢你们听我的演讲,希望你们可以用TypeScript编写App,谢谢! 教程源代码及目录https://github.com/lewis617/angular2-tutorial |
请发表评论