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. Properties文件中文属性读取是乱码问题

    项目当中遇到了需要从Properties文件中读取配置属性的需求,本来是存储的中文转码后的属性,但是考虑到后期更改问题就变成java代码中进行转码,代码如下: Properties pros = ne ...

  2. 基于哈夫曼编码的文件压缩(c++版)

    本博客由Rcchio原创 我了解到很多压缩文件的程序是基于哈夫曼编码来实现的,所以产生了自己用哈夫曼编码写一个压缩软件的想法,经过查阅资料和自己的思考,我用c++语言写出了该程序,并通过这篇文章来记录 ...

  3. eclipse点击包(package)时报错,安装hibernate后点击包报错org/eclipse/jpt/common/utility/exception/ExceptionHandler

    错误描述: 当我们点击包名时,出现如下错误提示.An error has occurred. See error log for more details.org/eclipse/jpt/common ...

  4. matlab coder 工具箱使用教程

    之前一直听说matlab代码可以转C和C++代码,但是一直都没有时间尝试,最近闲着无聊,就想来试试如何转换,上网查了很多资料,照着做下去,发现都有一些问题,之后自己琢磨了很久,终于将一个很简单的例子给 ...

  5. 还原Vue.js的data内的数组和对象

    最近学习Vue.js发现其为了实现对data内的数组和对象进行双向绑定,将数组和对象进行了封装. 如下的对象 todos: [     {         id: 1,         title: ...

  6. [测试题]gentree

    Description 给你一个有向连通图G,每点有个权值Di(0<Di),要求生成一棵树根为1号节点的有根树T.对于树中边E,E的代价为所有从根出发的且包含E的路径的终点权值的和.现求生成树T ...

  7. BZOJ 3243 Clever Y

    Description Little Y finds there is a very interesting formula in mathematics: XY mod Z = K Given X, ...

  8. [HNOI2009]无归岛

    Description Neverland是个神奇的地方,它由一些岛屿环形排列组成,每个岛上都生活着之中与众不同的物种.但是这些物种都有一个共同的生活习性:对于同一个岛上的任意两个生物,他们有且仅有一 ...

  9. Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined)

    C题卡了好久,A掉C题之后看到自己已经排在好后面说实话有点绝望,最后又过了两题,总算稳住了. AC:ABCDE Rank:191 Rating:2156+37->2193 A.Oath of t ...

  10. C语言程序设计第二次作业0

    (一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 include int mian() { printf(&q ...