⒈TypeScript简介

  1.JavaScript的超集

  2.支持ECMAScript6标准,并支持输出ECMAScript3/5/6标准的纯JavaScript代码

  3.支持ECMAScript未来提案中的特性,比如异步功能和装饰器

  4.支持类型系统且拥有类型推断

  5.支持运行在任何浏览器、Node.js环境中

⒉JavaScript历史

  1995年,LiveScript搭载在网景浏览器中首次发布,由于网景觉得这个名字缺乏热度,所以决定蹭一下流行的Java的热度,最终改名为JavaScript。

  JavaScript与Java的关系,相当于雷锋和雷峰塔的关系。

  JavaScript的成功引起了微软的注意,然后在IE3.0上搭载了JavaScript的另一种实现JScript,两种JavaScript语言的出现意味着浏览器端语言标准化的缺失。

  1996年,网景将JavaScript提交给ECMA International(欧洲计算机制造商协会)进行标准化,最终确定了新的语言标准,取名为ECMAScript。从此所有的JavaScript实现都必须以ECMAScript标准为基础,但由于JavaScript历史原因,我们仍然称JavaScript为语言,称ECMAScript为标准。

  1997年ECMAScript发布了首版标准。

  1998年6月发布第二版标准。

  1999年12月发布第三版标准之后,之后的10年间,ECMAScript再也没能为标准化做出太大的贡献,甚至不同浏览器中的实现与标准大相径庭。不仅如此,各大厂商也开始向自己的JavaScript里添加“私货”,比如JScript中的ActiveXObject。

  这10年里究竟发生了什么呢?比较公允的看法是由于ECMAScript4过分激进的草案导致了浏览器厂商的一致抵制。IE和Flash在这一时期的强势也导致了ECMAScript的进一步没落。

  直到2005年秋,Task Group 1 of Ecma Technical Committee 39(TG1)才开始定期召开会议,之后,大火的Ajax让人们意识到了JavaScript的复兴,标准化工作才开始加速。

  经过一系列复杂的争论,2009年12月ECMAScript5得以发布。随后的2012年,国外的开发者社区推动停止对旧版本的IE支持工作,使得ECMAScript5开始流行。

  2015年,ECMAScript规范草案的委员会TC39决定将定义新标准的制度改为一年一次,这意味着ECMAScript的更新不再依赖于整个草案的完成度,而可以根据添加的特性进行滚动发布。同年,代号为Harmony的ECMAScript6,也就是耳熟能详的ES6(或者叫ES2015)得以发布。Harmony(和谐)这个名字很有意思,仿佛在告诉开发者这么多年的争执与混乱终于平息。

  但现在浏览器又开始拖后腿了,新特性往往很难在第一时间得到浏览器的支持,所以这一时期诞生了大量的前端工具,使开发者可以在开发环境中提前使用ECMAScript已发布或者还是草案的新特性。比如,Babel通过插件化的方式引入ECMAScript的特性,并在生产环境时编译到ES3或ES5的代码。

⒊TypeScript出现

  JavaScript的代码变得越来越庞大使得构建规模化的JavaScript应用程序的需求日益旺盛,使用JavaScript构建大型的Web应用很容易出现失控,变得难以驾驭。

  微软认为JavaScript只是一门脚本语言,设计理念简单,缺乏对类与模块的支持,并非真正用于开发大型Web应用,这使得微软内部开始出现需要自定义工具去强化JavaScript开发的需求。

  2012年10月,Delphi、C#之父安德斯.海尔斯伯格主持开发的TypeScript终于发布。

  TypeScript主要特点如下:

    1.免费开源,使用Apache授权协议。

    2.基于ECMAScript标准进行扩展,是JavaScript的超集。

    3.添加了可选静态类型、类和模块

    4.可以编译为可读的、符合ECMAScript规范的JavaScript

    5.成为一款跨平台的工具,支持所有的浏览器、主机和操作系统

    6.保证可以与JavaScript代码一起运行,无需修改。(这一点保证了JavaScript项目可以向TypeScript平滑迁移)

    7.文件扩展名是ts

    8.编译时检查,不污染运行时

⒋TypeScript的环境准备

  1.安装Node.js

  Node.js是JavaScript的一个基于服务端的运行环境,大部分JavaScript工具链都需要它才能运行,TypeScript也不例外。

  Node.js的安装过程此处省略,可以使用nvm安装,也可以直接使用安装包安装,我推荐nvm安装。

  带LTS(长期维护版本)标记的版本有长达30个月的官方维护,而不带的则仅有2个月的维护期。

  使用以下命令查看安装是否成功。

    

  2.npm

  npm(Node Package Manager)是Node.js的包管理工具,它不仅承接了Node生态的包管理,也承接了前端JavaScript的包管理工作,同时它还与Node.js一起无痕的捆绑安装,不需要再次去搜索下载,这使得npm很快得到普及。

  npm由三个不同的部分组成:网站、注册表和CLI。网站是用户发现软件包的主要工具,注册表是一个关于软件包信息的大型数据库,而CLI则告诉开发者如何在注册表上发布软件包或下载软件包。

  3.yarn

  yarn是Facebook、Google、Exponent和Tilde共同开发的一款新JavaScript包管理工具。它并没有试图完全取代npm。yarn同样是从npm注册源获取模块的CLI客户端。注册的方式与npm没有任何变化,同样可以正常获取与发布包。它存在的目的是解决团队使用npm面临的少数问题,比如依赖版本的锁定、并行安装以及文案输出等,当然,在Node版本的更替中,npm本身也在积极更新并解决这些问题。

  4.安装TypeScript

    1.安装TypeScript(全局安装)

npm install -g typescript

    通常在实际项目中,我们不会对TypeScript进行全局安装,因为TypeScript自带的tsc命令并不能直接运行TypeScript代码,所以通常我们还会安装TypeScript的运行时---ts-node。

    2.安装ts-node

npm install -g ts-node

    ts-node并不等于TypeScript的Node.js,仅仅封装了TypeScript编译的过程,提供直接运行TypeScript代码的能力。

  5.安装VS Code(开发IDE)

  如果你的内存够大,WebStorm也是可以的哦。

  如果选择将code命令添加到PATH环境变量,或者将VS Code添加到上下文菜单中那么就可以更快的打开文件或文件夹。

⒌Hello World!

  在VS Code中新建hello.ts,输入以下内容

console.log('Hello World!');

  按下快捷键CTRL + ~ 或者CTRL + J打开VS Code自带的终端,输入ts-node hello.ts

Hello TypeScript的更多相关文章

  1. TypeScript: Angular 2 的秘密武器(译)

    本文整理自Dan Wahlin在ng-conf上的talk.原视频地址: https://www.youtube.com/watch?v=e3djIqAGqZo 开场白 开场白主要分为三部分: 感谢了 ...

  2. TypeScript为Zepto编写LazyLoad插件

    平时项目中使用的全部是jQuery框架,但是对于做webapp来说jQuery太过于庞大,当然你可以选择jQuery 2.*针对移动端的版本. 这里我采用移动端使用率比较多的zepto框架,他跟jqu ...

  3. TypeScript Vs2013 下提示Can not compile modules unless '--module' flag is provided

    VS在开发TypeScript程序时候,如果import了模块有的时候会有如下提示: 这种情况下,只需要对当前TypeScript项目生成设置为AMD规范即可!

  4. TypeScript

    TypeScript: Angular 2 的秘密武器(译)   本文整理自Dan Wahlin在ng-conf上的talk.原视频地址: https://www.youtube.com/watch? ...

  5. 打造TypeScript的Visual Studio Code开发环境

    打造TypeScript的Visual Studio Code开发环境 本文转自:https://zhuanlan.zhihu.com/p/21611724 作者: 2gua TypeScript是由 ...

  6. 转职成为TypeScript程序员的参考手册

    写在前面 作者并没有任何可以作为背书的履历来证明自己写作这份手册的分量. 其内容大都来自于TypeScript官方资料或者搜索引擎获得,期间掺杂少量作者的私见,并会标明. 大部分内容来自于http:/ ...

  7. Webstorm编译TypeScript

    下载webstorm 下载node.js编译器npm   Webstorm的安装很简单.但如果没有Java For Mac 环境打开Webstorm时会有提示,点击提示会跳转下载链接,下载安装就好. ...

  8. CSS3与页面布局学习总结(七)——前端预处理技术(Less、Sass、CoffeeScript、TypeScript)

    CSS不像其它高级语言一样支持算术运算.变量.流程控制与面向对象特性,所以CSS样式较多时会引起一些问题,如修改复杂,冗余,某些别的语言很简单的功能实现不了等.而javascript则是一种半面向对象 ...

  9. 使用TypeScript拓展你自己的VS Code!

    0x00 前言 在前几天的美国纽约,微软举行了Connect(); //2015大会.通过这次大会,我们可以很高兴的看到微软的确变得更加开放也更加务实了.当然,会上放出了不少新产品和新功能,其中就包括 ...

  10. 产品前端重构(TypeScript、MVC框架设计)

    最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容. 公司期望把某一管理类信息系统从项目代码中抽取.重构为一个可复用的产品.该系统的前端是基于 ExtJs 5 进行构造的, ...

随机推荐

  1. 欧几里得?x

    可以去看dalao博客 orz 1.欧几里得算法 带余除法定理:a,b∈Z,其中b>0,存在唯一q及r,使a=bq+r,其中0<=r<b; 辗转相除法(欧几里得算法)依据:(a,b) ...

  2. 【CTS2019】珍珠【生成函数,二项式反演】

    题目链接:洛谷 pb大佬说这是sb题感觉好像有点过fan...(我还是太弱了) 首先,设$i$这个数在序列中出现$a_i$次,要求$\sum_{i=1}^D[a_i \ mod \ 2]\leq n- ...

  3. 关于pl/sql打开后database为空的问题解决办法

    前置条件:楼主是在虚拟机里面进行安装oracle和pl/sql的,所以我的安装后,发现我的pl/sql显示的database是空的,当然楼主会检查我的tnsnames.ora是不是配置正确了,但是检查 ...

  4. 手游折扣app票选结果公布哪个好哪个靠谱一目了然

    2018年,是中国改革开放40年,也是中国互联网20年.“互联网推动了精神文明向更高水平的迈进,实现人的价值第一,创造美好生活,从生产高于生活.艺术高于成活,转向发现与实现生活本身美好,让想象成真.如 ...

  5. ASP.NET的MVC设计模式

    当开发者听到“设计模式”这个词时,他们通常联想到两个场景.一组开发者正在讨论许多创造性意见,正在开会,但是却没有进行编码.另外一组人能制定出正确的计划,保证系统能够开发成功,代码可以重用. 而现实一般 ...

  6. WIN10环境下点击通知栏图标时自动切换输入法导致图标位置变动

    这个问题由来已久,每当点击系统右下角任务栏中的按钮时,原本是搜狗输入法就会自动变成“US [ 中文(简体,中国) ]”,图标会自动错位,导致响应的是其他功能. 假设上图是正常的环境,此时我点击电池图标 ...

  7. 我对java多进程多线程的浅显理解

    linux内核调度算法--CPU时间片如何分配: http://blog.csdn.net/russell_tao/article/details/7103012(转载)  ,通过该文章我们知道了进程 ...

  8. 使用sequelize-auto 生成mysql 表的实体时主键没有 autoIncrement: true 属性

    使用sequelize-auto 生成mysql 表时主键没有 autoIncrement: true 属性,这会导致插入数据时报错.看git上面是已经解决了的,解决方法是修改查询语句模板.我用的是0 ...

  9. 7 AOP

    AOP:Aspect Oriented Programming 面向切面编程.AOP是对面向对象编程的一种补充,在运行时动态地将代码切入到类的指定方法.指定位置的编程思想.将不同的方法的同一位置抽象成 ...

  10. oracle 常用工具类及函数

    j_param json; jl_keys json_list; -- 创建json对象j_param j_param := json(p_in_str); -- 校验param域是否缺少必填参数 j ...