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. HDU 6114 Chess

    Chess 思路:求C(n,m),除法取余用乘法逆元算. 代码: #include<bits/stdc++.h> using namespace std; #define ll long ...

  2. Codeforces 260D - Black and White Tree

    260D - Black and White Tree 思路:把两种颜色先按值sort一下,最小值肯定是叶子,然后把这个叶子和另外一中颜色的一个最小值的节点连接起来,再把这个节点变成叶子,把值减掉就可 ...

  3. C#通过XElement写入XML文件

    首先我们先看一下最终结果,如下: <?xml version="1.0" encoding="utf-8"?> <config> < ...

  4. 筛选datatable

    当从数据库里取出一些数据,然后要对数据进行整合,很容易就会想到: DataTable dt = new DataTable();//假设dt是由"SELECT C1,C2,C3 FROM T ...

  5. Python获取脚本所在目录的正确方法(转)

    1.以前的方法如果是要获得程序运行的当前目录所在位置,那么可以使用os模块的os.getcwd()函数.如果是要获得当前执行的脚本的所在目录位置,那么需要使用sys模块的sys.path[0]变量或者 ...

  6. External RNA Controls Consortium (ERCC)

    ERCC是啥? 外部RNA控制联盟,就是一套RNA-seq,基因表达检测过程中的控制系统,使得结果具有可重复性. RNA Spike-in Controls for Gene Expression W ...

  7. LeetCode--104--二叉树的最大深度

    问题描述: 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null, ...

  8. thinkphp得到客户端的ip

    /** * 获取客户端IP地址 * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字 * @return mixed */function get_cli ...

  9. 51nod-1605-博弈

    1605 棋盘问题  基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 上帝创造了一个n*m棋盘,每一个格子都只有可能是黑色或者白色的. 亚当和夏娃在 ...

  10. Mac XMind8 保存时报错

    错误提示 截图 日志 查看错误日志的方式:打开xmind –> 关于xmind –> 安装细节 –> 选项卡 “配置” –> 查看错误日志 看到有Caused by: org. ...