TypeScript介绍

TypeScript为JavaScript的超集(ECMAScript6), 这个语言添加了基于类的面向对象编程。TypeScript作为JavaScript很大的一个语法糖,本质上是类似于css的less、sass,都是为了易于维护、开发,最后还是编译成JavaScript。趁着周末的时间,浅尝了Typescript。

TypeScript 扩展了JavaScript语法,任何已经存在的JavaScript程序,可以不加任何改动,在TypeScript环境下运行。TypeScript只是向JavaScript添加了一些新的遵循ES6规范的语法,以及基于类的面向对象编程的这种特性。

其次,2016年9月底发布的Angular2框架,这个框架本身是由TypeScript编写的。Angular框架,大家都知道,它是由谷歌公司开发的,非常流行的框架。也就是说,现在TS这门语言是由微软和谷歌这两大公司在背后支持。因此我们有理由相信,在未来一段时间内,TS有可能成为前端开发语言中的主流。

  • 微软开发的一门编程语言
  • JavaScript的超集
  • 遵循最新的ES6规范

TypeScrip优势

  • 支持ES6规范:2015年发布的,它指出了未来一段时间内,客户端脚本语音的发展方向。
  • 强大的IDE支持:体现在三个特性上,1.类型检查,在TS中允许你为变量指定类型。2.语法提示。3.重构。
  • Angular2的开发语言

安装Typescript

npm install -g typescript

使用

新建Hello.ts文件

export class Hello {

}

运行 $ tsc Hello.ts 命令,可以看到生成了一个hello.js文件,即编译后最终在浏览器中执行的文件;

"use strict";
exports.__esModule = true;
var Hello = (function () {
function Hello() {
}
return Hello;
}());
exports.Hello = Hello;

由于TS有强大的IDE支持,因此在IDE编译器下可以不用敲写命令,自动把ts文件编译成js文件;

Types

所有类型都是any类型的子类型,其他类型被分成元类型(primitive types)和对象类型(object types)。

  1. 元类型包括 number, boolean, string, null, undefined
  2. 对象类型为所有类、模块、接口和字面量类型;
//编译前
var b: any; // 所有JavaScript值
var c; // Same as c: any
var a: number; // 显式类型
var d: boolean;
var e: string;
var f: string[] = ["hello", "world"]; //数组类型
var g: [number, string] = [3, "three"]; //元组类型
var h: string | number; //联合类型,几个不同的类型之中的一个 function k() : void{ //void是any的子类型,是undefined的超类型,与其他类型无关
alert('hi man');
} //编译后
var b; // 所有JavaScript值
var c; // Same as c: any
var a; // 显式类型
var d;
var e;
var f = ["hello", "world"]; //数组类型
var g = [3, "three"]; //元组类型
var h; //联合类型,几个不同的类型之中的一个
function k() {
alert('hi man');
}

总结:

  Typescript的好处很明显,在编译时就能检查出很多语法问题而不是在运行时。不过由于是面向对象思路,如果是纯前端的人员(没有后端语言基础),那用起来应该是比较吃力的。有没有需求使用Typescript,我觉得写出代码是否易于维护、优雅,不在于用了什么框架、语言,在于开发者本身的架构思路。诚然好的框架和语言能间接帮助开发者写出规范的代码,但不代码就能写得好。所以如果Typescript能使团队易于协同开发,提高效率,那才考虑使用。如果都用得很痛苦,那还是简单的来。

TypeScript知识点的更多相关文章

  1. TypeScript 知识点

    TypeScript 通过 类型批注 提供静态类型以在编译时启动类型检查. 基本批注类型是number.bool.string.而弱或动态类型是any. typescript 使用 作用 语句 全局安 ...

  2. TypeScript基本知识(为学习AngularJS2框架做个小铺垫)

    学习angularjs2框架,需要了解一些TypeScript知识点,基本了解下面这几个知识点学习AngularJS2 就够用了 1.TypeScript 1.1显示类型的定义 TypeScript类 ...

  3. 今天第一次接触到typescript,看了第一个知识点就是变量的声明,来回忆回忆,做做笔记

    以前只用过JavaScript原生写网站特效,今天还是第一次听说typescript的,然后看了一下它的基本知识,感觉很像Java,真的太像了,但是又有不同点.很让我惊奇看到的第一个知识点就和以前不同 ...

  4. TypeScript 基础知识点整理

    一.TypeScript的特点 1.支持ES6规范 2.强大的IDE支持(集成开发环境) 允许为变量指定类型,减少你在开发阶段犯错误的几率. 语法提示,在IDE编写代码时,它会根据你所处的上下文把你能 ...

  5. typescript相关知识点总结

    本文讲解typescript语法 由于js语法本身的混乱,再加上目前框架的割据,导致typescript用起来没有一致性,本文尽量总结实际开发中可能会用到的知识点 目录 数据类型 类型断言 duck ...

  6. 一文学会 TypeScript 的 82% 常用知识点(下)

    一文学会 TypeScript 的 82% 常用知识点(下) 前端专栏 2019-11-23 18:39:08     都已经 9021 年了,TypeScript(以下简称 TS)作为前端工程师不得 ...

  7. 一文学会 TypeScript 的 82% 常用知识点(上)

    前端专栏 2019-11-22 19:17:55 对于前端从业者来说,TypeScript(以下简称 TS)已经不算是新技术. Vue3 的源码基于 TS 编写, Angular 项目默认支持 TS ...

  8. NodeJs中require use get typescript及其他知识点集合

    NodeJs的Express使用 nodejs事件的监听与事件的触发 TypeScript学习笔记 深入浅出Node.js Nodejs开发Office插件 类百度文库文档上传.转换和展示功能项目开源 ...

  9. FlutterGo 后端知识点提炼:midway+Typescript+mysql(sequelize)

    前言 关于 FlutterGo 或许不用太多介绍了. 如果有第一次听说的小伙伴,可以移步FlutterGo官网查看下简单介绍. FlutterGo 在这次迭代中有了不少的更新,笔者在此次的更新中,负责 ...

随机推荐

  1. html5shiv.js和respond.min.js的作用

    html5shiv:解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题. respond.min:让不支持css3 Media Query的浏览器包括IE6-IE8等其他浏览 ...

  2. LDAP的用户需求

    使用LDAP(ApacheDS)构建统一认证服务(SSO单点登录)   构建团队协作的体系,需要涉及很多个系统,如SVN.Jenkins.Trac.Nexus等,而一般而言每个系统均有其用户体系,当我 ...

  3. J2ee入门:servlet-mapping的映射配置

    <servlet-mapping>元素在Servlet和URL样式之间定义一个映射.它包含了两个子元素<servlet- name>和<url-pattern> & ...

  4. Excel 日期截取(函数)

    需求:时间段截取,去掉年月日,保留时分. 实现函数:    =TEXT(A2,"HH:MM")&"-"&TEXT(B2,"HH:MM& ...

  5. MongoDB GridFS 存储大文件

    我们经常会遇到这样的场景:上传/下载文件. 有两种思路可以解决这个问题: (1)将文件存储在服务器的文件系统中: (2)将文件存储在数据库中. 如果我们选择(2),那么我们可以使用MongoDB Gr ...

  6. 使用nodeJS的 crypto模块来为你的密码hash加盐

    这篇文章将向你解释如何使用Node.js的Crypto模块对你的密码进行加盐hash.在这里,我们将不会对不懂的密码存储方式进行详细的比较.我们将要做的是知道在Node.js中使用加盐hash在进行密 ...

  7. MYSQL之库操作

    一.系统数据库 information_schema :虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等 mysql:核心数据库,里面包含用户.权限. ...

  8. 日推20单词 Day01

    1.conflict n. 冲突 2.electronic adj. 电子的 3.mine n. 矿藏,地雷 4.mineral n. 矿物质 adj. 矿物的 5.undermine vt 破坏,渐 ...

  9. svn介绍和安装

      什么是SVN呢,作用是什么: SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS/CVS,它采取了分支管理系统,它的设计目标就是取代CVS.SVN就是用于多个人共同开 ...

  10. NSURLSession使用, 后台下载

    现在越来越多的开发习惯于使用各种第三方框架,诚然,第三方框架给我们开发带来了很多便利,但我们不能太依赖于第三方,在使用第三方的同时学习其原理才是硬道理. 所以今天我们就来讲讲AFNetworking所 ...