免责声明:因为关于建立TypeScript的文章已经不少了,在这里为了完善个人这个系列,从网络上copy了下面这篇介绍,原文地址:http://www.cnblogs.com/liangquewei/archive/2012/11/15/2772298.html,如若认为有侵权,请原文做者及时告知!
对于咱们写习惯了强类型、静态类型语言的开发人员来说,开发弱类型、动态类型语言的程序可真是头痛呀。特别是的走微软技术路线,用习惯了强大无比的VS系列工具的开发人员,VS2003,VS2005,VS2008,VS2010,VS2012。。。。。。还有这些工具与其相结合的强类型语言,好比C#,那用起来多爽呀。 javascript
先来看看弱类型语言有些特色吧,若是本身归纳下,这样太片面,网上找找别的人观点再结合下本身的可能会更好一点,好,动手,查资料。先上广告强站,百度吧,专业性强点的谷歌目前好像不是太好用呀,成天动不动就链接不上了。 php
百度一下“弱类型语言”,看到了无所不能的百度百科里有定义,内容以下: html
弱类型语言也称为弱类型定义语言。与强类型定义相反。像vb,php等就属于弱类型语言.例如:在vbscript中,能够将字符串 12 和整数 3 进行链接获得字符串 123,而后能够把它当作整数 123,而不须要显式转换。 java
弱类型有时显得很方便,有时却又极易出错。好比: jquery
var result=5+5; //two numbers typescript
alert(result); //outputs "10" npm
var result=5+'5'; // a number and a string 编程
alert(result); //outputs "55" windows
所以使用弱类型语言也要格外注意数据类型防止出错。 浏览器
接下来看到一篇普及性的文章,介绍清楚了啥是动态语言,静态语言,强类型语言,弱类型语言。
动态语言和静态语言
一般咱们所说的动态语言、静态语言是指动态类型语言和静态类型语言。
1 动态类型语言:动态类型语言是指在运行期间才去作数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其余的各类脚本语言如VBScript也多少属于动态类型语言。
2 静态类型语言:静态类型语言与动态类型语言恰好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明全部变量的数据类型,C/C++是静态类型语言的典型表明,其余的静态类型语言还有C#、JAVA等。
对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamic typing when needed。
强类型定义语言和弱类型定义语言
1 强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,若是不通过强制转换,那么它就永远是这个数据类型了。举个例子:若是你定义了一个整型变量a,那么程序根本不可能将a看成字符串类型处理。强类型定义语言是类型安全的语言,须要进行变量/对象类型声明的语言,通常状况下须要编译执行。例如C/C++/Java/C#
2 弱类型定义语言:数据类型能够被忽略的语言。它与强类型定义语言相反, 一个变量能够赋不一样数据类型的值。
强类型定义语言在速度上可能略逊色于弱类型定义语言,可是强类型定义语言带来的严谨性可以有效的避免许多错误。另外,“这门语言是否是动态语言”与“这门语言是否类型安全”之间是彻底没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。弱类型语言是指不须要进行变量/对象类型声明的语言,通常状况下不须要编译(但也有编译型的)。例如PHP/ASP/Ruby/Python/Perl/JavaScript等等。
好了,到这普及性的知识应该已经差很少了,呵呵,想一想到底开发javascript对于用习惯了强类型语言静态语言的开发人员来说有些什么样的困难吧。若是没困难,那就不用看下去了,TypeScript也不必去了解了,呵呵。
在javascript没有运行以前,想作确认下数据的类型用的是否正确的,变量有没有重复定义,相互覆盖难呀。程序运行前的正确性判断基本得靠人了,出错的可能性那固然高了,并且对人的高求高呀。要是能有一种工具能帮助咱们更好地开发javascript就行了,提高开发的效率,下降出错机率。固然了,目前工具仍是有些的,不过好像能起到的做用不是不少呀,毕竟这是javascripty语言自己的不少特性限制了,工具作更好也难。反正是不运行前,能作的发现错误工做太少了。工具上不能很好的解决这个问题,那是否考虑下换一种开发方式呢? 用一种相似静态语言,强类型语言的开发方式来进行javascript的开发会更好一点呢? 呵呵,这思路不错,并且人家已经作了这样的事情了,好,请出咱们这回的开发语言主角:TypeScript,人如其名呀,Type的,就是类型明确化的script,可不是通常的script呀。
TypeScrip是什么东东呀?
TypeScript是啥呀?
它是一个Strong Tools for Large Application,官方的网站是http://www.typescriptlang.org/%EF%BC%8C%E9%9D%9E%E5%B8%B8%E5%85%B3%E9%94%AE ,还有一点很是的关键,它是开源的哦,彻底免费的。
TypeScript是一个应用程序级的JavaScript开发语言。
TypeScript是JavaScript的超集,能够编译成纯JavaScript。
TypeScript跨浏览器、跨操做系统、跨主机,开源。
Starts from JavaScript, Ends with JavaScript
TypeScript遵循JavaScript的语法和语义,方便了无数的JavaScript开发者。
TypeScript能够重用现有的JavaScript代码,调用流行的JavaScript库。
TypeScript能够编译成简洁、简单的JavaScript代码,在任意浏览器、Node.js或任何兼容ES3的环境上运行。
TypeScript比JavaScript更具开发效率,包括:静态类型检查、基于符号的导航、语句自动完成、代码重构等。
TypeScript提供了类(Class)、模块(Module)和接口(Interface),更易于构建组件。
用TypeScript建立简单的Web应用程序,安装TypeScript有两种办法:
1. TypeScript for Visual Studio 2012
2. for Node.js 安装指令(使用NPM安装): npm install -g typescript
用上了TypeScript,再用上强大的VS2012,咱们来亲身感觉下开发TypeScript应用程序的便捷吧。
先安装好TypeScript for Visual Studio 2012,呵呵,善于使用好工具呀。
再创建第一个TypeScript工程,TypeScriptHTMLAppDemo。
先来定一个类吧。
再来使用这个类的一个具体实例化后的对象吧。
这简直就是写C#嘛,呵呵,感受很爽吧,用这方式来开发javascript感受真是太爽了。不仅是类型明确,有类,有接口,有模块,还有编译时错误检查,强大的智能感应。。。。。。可让咱们少犯不少错误呀。
再看看程序编译生成的javascript和运行的结果,呵呵。
好了,例子搞完了,看下TypeScript目前的体系结构吧,它目前封装好的组件库仍是有限的,不过在不断的丰富当中,并且咱们本身也彻底能够根据它的语法来经过封装,复用咱们的javascript组件库。
从它发布的组件库来看,它目前已经作好了jquery的封装组件(jquery.d.ts),浏览器内置DOM的封装组件(lib.d.ts),windows 8下winRT的封装组件(winrt.d.ts)。