JavaScript过去一直被当作一种玩具语言存在,直到2005年以后,这门语言又开始活跃并可以说是火爆,而且随着浏览器版本的不断升级和完善,各种DOM之间的兼容性已经渐渐的被各种技术解决了,比如经典的jQuery,JavaScript版本也在快速发展和完善。现如今,Web世界越来越让人摸不着边际,JSON、AJAX、HTML5、Sliverlight、Node.js、PhoneGap几乎都可以见到JavaScript忙碌的身影。不过渐渐的有经验的用户会发现JavaScript语言本身的局限性导致在开发大型应用的吃力,因为它本来就不是用来开发大型语言的。Google公司创造了一种全新的使得JavaScript可以应用于大型开发的语言名为Dart,它可以编译为JavaScript,因此也可以用来构建大中型的Web项目。其实JavaScript本身也是可以定义类或者是完成继承的,不过由于它属于动态语言,没有一种类似Python和IronRuby语言的功能,它也不具备类似于C#或VB那样基于面向对象的编程模型,一切都过于动态化,比如不支持强制类型、接口、直接命名空间等功能。

微软公司的技术大牛,也满腔热情的创建了TypeScript。作为JavaScript的超集,它可以支持静态类型、类、接口、模块以及很多.NET开发人员熟悉的特性和规范。微软通过TypeScript希望提供一种让JavaScript具有开发大型应用程序的能力。

更重要的是,微软提供了一套可以用来容易扩展、调试和修改的应用程序,其实究其核心来说,我们可以这样来认识TypeScript:
它就是JavaScript,因此运行在JavaScript上的库,比如jQuery、MooTools、Prototype都可以在TypeScript上良好运行。
JavaScript也可以看作是TypeScript,你可以将任何有效的.js文件重命名为TypeScript的.ts文件,然后使用TypeScript的编译器来编译。

TypeScript借用了Harmony规范,当Harmony批准后,TypeScript编译器就可以使用新的语言元素,并且允许新的Harmony兼容的引擎来解析TypeScript为纯JavaScript代码。

TypeScript编译器本身是一个JavaScript文件(通过TypeScript编译器最终编译成JavaScript文件),因此它可以在浏览器中运行,在任何主机或任何操作系统上运行,并不需要特定的VM并且也不会开发这样的VM。

注意:WisOne IDE也正是借用了这个特性,它在Web上整合了TypeScript编译器,使得我们可以在Web上编译TypeScript代码,以便在编译时就可以发现语法的错误。有兴趣的朋友也可以进去了解一下:http://www.wisone.com/ide

TypeScript是一个基于Apache 2.0的开源的项目,遵循owf A 1.0协议,这意味着可以随意使用和分发。

在Web开发世界,Dart和CoffeeScript都可以让开发大型的Web应用成为可能,微软也挤进来整出一个TypeScript,那这门语言究竟可以做什么,它是如何工作的,重要的是它不能做什么,这些有了解,就可以试着来进入TypeScript的世界了。从核心上来说,TypeScript由3个部分组成:
1,TypeScript编译器:本身就是用TypeScript写的,这个编译器可以将TypeScript语言编译成常用的JavaScript,编译出来的代码兼容ECMAScript V3版,或者是通过编译器切换支持V5版。
2, TypeScript语言服务层:TLS是一个Visual Studio插件,它提供了智能提示、强制类型安全和Visual Studio中的几个特性。
3, 声明性文件:TLS使用了声明性的文件来提供类型、函数调用和变量声明智能提示,这其中包含了第三方的库比如jQuery、Prototype以及MooTools等等。

不要将TypeScript看作是一门新的语言,它只是为了提升JavaScript代码质量的一个工具,最终TypeScript仍然要编译成JavaScript,所以你也可以使用所有的为JavaScript准备的工具,Microsoft建议使用在Visual Studio中编译TypeScript以提供智能提示或语法增强的功能,但这不是限制,使用普通的文本编辑器都可以用来编写TypeScript。

TypeScript相关的文章目录:

玩转TypeScript(1) --定义简单的类
玩转TypeScript(2) --简单TypeScript类型

玩转TypeScript(3) --数组
玩转TypeScript(4) --类型转换
玩转TypeScript(5)--环境声明
玩转TypeScript(6) --函数
玩转TypeScript(7) --函数的参数
玩转TypeScript(8) --函数的重载
玩转TypeScript(9) --类
玩转TypeScript(10) --属性和字段
玩转TypeScript(11) --类方法
玩转TypeScript(12) --访问修饰符
玩转TypeScript(13) --实例化类
玩转TypeScript(14) --静态类和成员
玩转TypeScript(15) --对象常量与匿名类型
玩转TypeScript(16) --接口
玩转TypeScript(17) --接口的合并
玩转TypeScript(18) --模块

玩转TypeScript(引言&文章目录) --初看TypeScript.的更多相关文章

  1. CSDN中根据文章自动生成文章目录

    概述 CSDN中有根据文件内容中H标签在文章中自动生成文章目录,看起来比较专业,就想把它搬到自己的博客园中.类似下图 提取JS脚本 通过浏览器开发者工具(IE/Chrome)找到产生文章目录javas ...

  2. CesiumJS 2022^ 源码解读[0] - 文章目录与源码工程结构

    很高兴你能在浮躁的年代里还有兴趣阅读源代码,CesiumJS 至今已有十年以上,代码量也积累了三十多万行(未压缩状态). 我也很荣幸自己的文章能被读者看到,如果对你有帮助.有启发,点个赞就是对我最大的 ...

  3. 【目录】本博客其他.NET开源项目文章目录

    本博客所有文章分类的总目录链接:本博客博文总目录-实时更新 1.本博客其他.NET开源项目文章目录 37..NET平台开源项目速览(17)FluentConsole让你的控制台酷起来 36..NET平 ...

  4. 【Head-First设计模式】C#版-学习笔记-开篇及文章目录

    原文地址:[Head-First设计模式]C#版-学习笔记-开篇及文章目录 最近一年断断续续的在看技术书,但是回想看的内容,就忘了书上讲的是什么东西了,为了记住那些看过的东西,最好的办法就是敲代码验证 ...

  5. 使用autoc js生成文章目录(侧边)导航栏

    介绍: autocjs 是一个专门用来生成文章目录(Table of Contents)导航的工具.autocjs 会查找文章指定区域中的所有 h1~h6 的标签,并自动分析文章的层次结构,生成文章的 ...

  6. [翻译] 初看 ASP.NET Core 3.0 即将到来的变化

    [翻译] 初看 ASP.NET Core 3.0 即将到来的变化 原文: A first look at changes coming in ASP.NET Core 3.0 在我们努力完成下一个 m ...

  7. web开发微信文章目录

    Web开发微信文章目录 2015-12-13 Web开发 本文是Web开发微信的文章目录.通过目录查看文章编号,回复文章编号就能查看文章全文. 回复编号查看全文,搜索分类名可以获得该分类下的文章.   ...

  8. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  9. Win10安装1 —— 引言与目录

    本文内容皆为作者原创,如需转载,请注明出处:https://www.cnblogs.com/xuexianqi/p/12368107.html 一:引言 众所周知,电脑出现问题了后,重启 可以解决90 ...

随机推荐

  1. python 函数赋值

    ⾸先我们来理解下Python中的函数 def hi(name="yasoob"): return "hi " + name print(hi()) # outp ...

  2. UI自动化测试篇 :webdriver+ant+jenkins自动化测试实践

    http://www.cnblogs.com/chengtch/p/6063360.html 前面基本弄清楚了webdriver+ testng 的测试环境部署,现在这里记录一下结合ant及jenki ...

  3. MongoDB(课时7 逻辑运算)

    3.4.2.2 逻辑运算 逻辑运算主要三种类型:与($and),或($or),非($not.$nor). 范例:查询年龄在20~21岁的学生信息 db.students.find({"age ...

  4. listener TNS-01189 问题

    -- 启动监听,提示已经启动. [oracle@sh ~]$ lsnrctl start LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 0 ...

  5. 《WAP团队项目软件设计方案》

    WAP团队项目软件设计方案 一.根据OOD详细设计工作要点,修改完善团队项目系统设计说明书和详细设计说明文档的GitHub地址:https://github.com/LVowe999/-7.git 在 ...

  6. Topless eclipse导入myeclipse的web项目没法识别问题解决

    1.进入项目目录,找到.project文件,打开. 2.找到<natures>...</natures>代码段. 3.在第2步的代码段中加入如下标签内容并保存: <nat ...

  7. FastJson之JsonObject, JsonString, JavaBean,List快速转换

    // 将json字符串转换为json对象 JSONObject jsonObject = JSON.parseObject(jsonStr); // {"retState":&qu ...

  8. 3-22 Ruby 编码规则(个人整理)

    编码规则 https://github.com/thoughtbot/guides/tree/master/style/ruby *Use a trailing comma after each it ...

  9. P4721 【模板】分治 FFT

    其实是分治ntt,因为fft会爆精度,真*裸题 分治过程和fft的一模一样,主要就是ntt精度高,用原根来代替fft中的\(w_n^k\) 1.定义:设m>1,(a,m)==1,满足\(a^r= ...

  10. Largest Point (2015沈阳赛区网络赛水题)

    Problem Description Given the sequence A with n integers t1,t2,⋯,tn. Given the integral coefficients ...