TypeScript 面向对象基础知识

孙广东  2016.4.5


JavaScript如今到处都是,web、服务器(通过NodeJS)、移动应用(通过各种框架),所有这些,TypeScript都可以使用,并且可以为JavaScript扩展出面向对象和静态类型的特征。

TypeScript能让我们提前使用未来的语言特性,甚至更多,例如泛型这种语言特性。

TypeScript代码,最终会编译为地道的JavaScript,兼容一切使用JavaScript的场合。

编译过程主要是编译时检查,一点改写,删除类型批注和接口。删除类型批注和接口这个过程称为类型擦除(Type Erasure)。


我从网上找到一张很好的图片用来说明类型擦除,如下。


我们后面将详细介绍TypeScript并对比他和其他语言的异同,主要是C#


关于TypeScript到底是Compiling 还是 Transpiling


这个话题很难说清楚,但是很有必要在提到TypeScript的时候讲一下,这两个词:编译CompilingTranspiling有人译作转译,这是一个英文计算机术语。一般认为转译是一种特殊的编译,当将一种源代码语言编译成另外一种源代码语言时,就称为转译

当编译一个c#程序时,是由源代码语言C#编译为IL,这就不能称为Transpiling,因为他们是完全不同的东西。

而编译TypeScript程序时,他变成了另外一种源代码JavaScript,这个就称为Transpiling(转译)

但无论如何,TranspilingCompiling的特例,Transpiling也属于Compiling

所以TypeScript转译为JavascriptTypeScript编译为JavaScript,都是没有问题的讲法。

TypeScript语言特性


这里快速介绍一下TypeScript的关键语法,比如显示类型批注、类、接口。

虽然C# Java程序员都很熟悉面向对象,但TypeScript并不基于C#,所以还是有所区别的。

TypeScript是静态类型语言,需要编译,拥有编译时类型检查的特性。

编译时类型检查能够确保类型安全,并方便开发更智能的自动完成功能,实际上TypeScript的各种开发工具都做得很不错。

比如VisualStudio,编写TypeScript文件时,就比编写JavaScript要聪明的多。这就是静态类型带来的好处。


TypeScript文件

TypeScript文件的扩展名为”.ts”,你可以使用很多工具编写.ts文件,比如visualstudio。更多信息,请看官网http://www.typescriptlang.org/

官网还提供了一个在线编写测试.ts文件的环境http://www.typescriptlang.org/Playground/

一个TypeScript应用包含多个TypeScript代码文件,一个代码文件可以包含多个ClassClass也可以组成模块。

模块的概念和C#中组织类型的namespace比较接近。

运行时,TypeScript编译得到的JavaScript可以通过Html标签

你可能感兴趣的:(面向对象,c#,Node.js,TypeScript)