转发:微软MVP 卢建晖 的文章,希望对大家有帮助。原文:http://blog.csdn.net/kinfey/article/details/44568971


编者语 : 人总会多次犯错,历史上告诫大家不要在演讲前更新最新版本的软件,但周末我又一次错了......好吧下次我坚决录屏。本来约好周日和大家见,但深圳回来后又是各种的会议耽搁到现在真的不好意思。大家想我了吗?上周发了4篇,貌似效果都不错,谢谢徐总和善友的微信推广。感恩,感谢有这群好兄弟的支持!今天和大家聊聊TypeScript 。有人觉得这个话题与ASP.NET 5 无关但是个人觉得关系比较密切,毕竟你要做前端 。

什么是TypeScript ?

TypeScript 是JavaScript 的超集,它给JavaScript带来了面向对象,也带来了静态类型。在你的项目中不需要修改任何现有JavaScript代码就可以注入TypeScript代码。通过TypeScript你可以规范JavaScript代码方式并以面向对象的方式构建你的前端。TypeScript已经支持现在流行的JavaScript库,让你更容易去和现有项目结合,如Jquery/AngularJS/KnockoutJS/NodeJS等。(进入官方网站)

TypeScript环境配置

1.安装

npm install -g typescript

2.开发环境

个人建议还是在Sublime Text ,通过Control Package 安装Better TypeScript .

TypeScript的几个主要特点

 1. 静态类型

TypeScript通过静态类型规范了JavaScript变量的声明,并在编译时提供类型检查。如下图

这里定义了一个类,并在类中定义了一个getJSON的方法,这里结合静态类型对方法所传送的参数进行类型定义, 并返回void。如果你用传统的JavaScript写,虽然弱类型的方式比较方便,但是对于传参的类型不明确。通过TypeScript你就可以像C/C++那样编写你的前端代码。这里说明一点,当你对于对象的类型不太明确时你可以用any(动态类型)取代。

2. 面向对象

TypeScript为JavaScript带来了interface/class/module等面向对象的特性。这个好处除了规范代码,也可以规范前端项目结构。以往我们的JS项目用传统的MVC/MVVM入手总因为JavaScript太过灵活,导致架构无从入手。通过TypeScript你可以利用面向对象去整合你的前端代码。

  

3.ts编译器

       通过tsc 可以将TypeScript的ts文件编译为通用的JavaScript文件。当然你可以选择预编译的方式,也可以选择实时编译的方式。还是那句咸鱼白菜各有所爱,就看自身需求。而我在项目中我喜欢用预编译。

4.第三方库支持(关于第三方库的对应TypeScript可以从这里获取)

现在TypeScript都和主流的库都有匹配对应,你可以从nuget/上面的链接中获取。本人架构前端基本上基于AngularJS/KnockoutJS, 基本上没有大问题。更可喜的是AngularJS 2.0 和TypeScript进行了更加深入的整合(Google+Microsoft)。

基于TypeScript的前端,让你写代码更Cool,更不会再让你为一些奇怪的语法而迷惑。我喜欢TypeScript,你呢?


欢迎关注本博客微信订阅号 anb-io。每周推送内容,有技术也有生活,和你一起做一个有情怀的程序猿。

世界上不是所有的东西都是用直接经济契约来维系的,比如:阳光,空气,爱情和开源软件。

(转) 一步一步学习ASP.NET 5 (五)- TypeScript的更多相关文章

  1. 学习ASP.NET MVC(五)——我的第一个ASP.NET MVC CURD页面

    在上一篇文章中我们已经创建了实体类,在这一篇文章中,我将创建一个新的控制器类——BookController,使用BookController对Books表中的数据进行CURD操作的方法,并使用视图模 ...

  2. 学习ASP.NET MVC(七)——我的第一个ASP.NET MVC 查询页面

    在本篇文章中,我将添加一个新的查询页面(SearchIndex),可以按书籍的种类或名称来进行查询.这个新页面的网址是http://localhost:36878/Book/ SearchIndex. ...

  3. 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序

    学习ASP.NET MVC系列: 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器 学习ASP ...

  4. 学习ASP.NET MVC(九)——“Code First Migrations ”工具使用示例

    在上一篇文章中,我们学习了如何使用实体框架的“Code First Migrations ”工具,使用其中的“迁移”功能对模型类进行一些修改,同时同步更新对应数据库的表结构. 在本文章中,我们将使用“ ...

  5. 学习ASP.NET MVC(十一)——分页

    在这一篇文章中,我们将学习如何在MVC页面中实现分页的方法.分页功能是一个非常实用,常用的功能,当数据量过多的时候,必然要使用分页.在今天这篇文章中,我们学习如果在MVC页面中使用PagedList. ...

  6. 学习ASP.NET MVC系列 - 还有比这更简炼的吗?把复杂的事情变简单了,贡献啊!

    转自

  7. (转) 一步一步学习ASP.NET 5 (四)- ASP.NET MVC 6四大特性

    转发:微软MVP 卢建晖 的文章,希望对大家有帮助.原文:http://blog.csdn.net/kinfey/article/details/44459625 编者语 : 昨晚写好的文章居然csd ...

  8. (转) 一步一步学习ASP.NET 5 (二)- 通过命令行和sublime创建项目

    转发:微软MVP 卢建晖 的文章,希望对大家有帮助. 注:昨天转发之后很多朋友指出了vNext的命名问题,原文作者已经做出了修改,后面的标题都适用 asp.net 5这个名称. 编者语 : 昨天发了第 ...

  9. 3、带你一步一步学习ASP.NET Core中的配置之Configuration

    如果你是刚接触ASP.NET Core的学习的话,你会注意到:在ASP.NET Core项目中,看不到.NET Fraemwork时代中的web.config文件和app.config文件了.那么你肯 ...

随机推荐

  1. 注意:DateTimePicker.Text不靠谱

    这鸟属性把我害苦过,特此敬告一下大家.具体表现在: 获取时:在DateTimePicker.ValueChanged事件中,获取到的Text有可能是string.Empty!!!,特别当ValueCh ...

  2. Nofuser - deobfuscator for Confuser

    google搜索了好久,最终找到这个工具,可直接使用. 虽然脱后有很多无用代码,但关键代码是还是很清晰的! ----------------------------NoFuser----------- ...

  3. 怎样解决PowerDesigner15出现许可证过期问题?

    今天打开PowerDesigner软件,出现许可证过期问题,怎样解决 1)打开软件安装路径(通过搜索打开文件所在路径或通过软件图标的属性打开)

  4. virtualbox创建com对象失败(解决方法)

      我的电脑是win7 64bit的,和舍友同时安装virtualbox,她的是win8,安装得很顺利. 我的就比较坎坷了,安装完打开后就出现了这个问题.   试过网上的好几个方法都不行,最后结合了两 ...

  5. 引用计数 vs. GC

    内存管理问题 内存管理是编程过程中的一个经典问题,早期在 C 语言时代,几乎都靠 malloc/free 手动管理内存.随着各个平台的发展,到现在被广泛采用的主要有两个方法: 引用计数 (ARC,Au ...

  6. Ionic 开发环境搭建

    android sdk环境搭建并非易事,本人经过无数失败,才使用以下方式成功 配置Ionic 开发环境 1.下载JDK并配置Java运行环境 http://www.oracle.com/technet ...

  7. CSS3 模块

    CSS3 被划分为模块. 其中最重要的 CSS3 模块包括: 选择器 框模型 背景和边框 文本效果 2D/3D 转换 动画 多列布局 用户界面

  8. sharepoint项目遇到的WebDAV和HTTP PUT的安全隐患解决办法

    最近一个项目,客户进行了安全检测,检测出如下安全隐患,其实这些隐患全是IIS设置的事情   许多人误认为SharePoint是在使用由IIS提供的WebDAV功能. 实际上, SharePoint在S ...

  9. C/C++ 一些常用的运算符

    算数运算符 语法 解释说明举例 a + b 加法(求和)1+1..2+2..   2.5+2.5..等等 a - b 减法(求差)5 - 2.. a * b 乘法(求积)2 * 5 a / b 除法( ...

  10. ArcGis 001270 : 合并数据失败

    描述 工具无法将服务所需的数据和资源打包. 如果用于发布 GIS 资源的路径或要向服务器复制的数据的路径大小超出了操作系统的限制,则当您向 ArcGIS 服务器复制数据时会发生此错误. 此路径包括过渡 ...