使用TypeScript开发程序
2013-10-15 17:23
471 查看
简介
TypeScript一直发展不错,我们公司在开发新功能时,考虑到程序的可维护性,使用了TypeScript编写浏览器上的程序,我们是从零开始使用TypeScript,甚至我连javascript也是半罐子,本文描述了一个c#程序员认识TypeScript的过程。注:本文编写时,基于Typescript0.8版本,而且初用,可能过时,具体规范可以参考http://www.typescriptlang.org
命名空间和类
作为面向对象的开发人员思维,第一个想到的是TypeScript如何定义类,由于正好我们项目服务端(C#)的原理和客户端(TypeScript)原理完全相同,所以这里正好用C#与TypeScript对比。C#声明类
using System; namespace Digiwin.Mars.VirtualUI.Engine { internal sealed class Decoder {} }
TypeScript声明类
///<reference path="../Collections/ICollection.ts" /> module System.Erp.VirtualUI.Engine { export class Decoder {} }
首先简单来说,都有类似命名空间的概念,一个叫namespace,一个叫module,这个就不废话了。
其次,c#要引用其他的类,首先你需要在工程文件中引用dll,然后在文件头上using一个命名空间(可选),但是在TypeScript中,没有这个概念,直接引用一个文件的。
C#里类可以public、internal等等很多级别,还有sealed等修饰符,TypeScript你就忘记这些吧,加入export相当于public,抽象,值类型什么的,这个好像没有。
但是接口是有的。
方法和注释
C#的方法/// <summary> /// 解码变更集 /// </summary> /// <param name="reader"> 一个变更集读取器对象 </param> public void DecodeChangeSet(ChangeRecordReader reader) { //解码上下文对象 var ctx = new DecodeContext();
TypeScript声明方法
/** * 传入变更集,将其解码到当前的对象容器。 * @param {System.Erp.VirtualUI.Engine.IChangeRecordReader} reader - 提供记录集。 */ public Decode(reader: IChangeRecordReader): void { //解码上下文对象 var ctx = new DecodeContext();
我们首先看到c#的xml 文档专用注释也是支持的,不同他使用JsDoc的规范。
普通的注释也使用// ,这个完全和javascript相同。
在方法的声明上,TypeScript将返回参数放在后面,对应的,参数的类型也是放在名字后面,如果你声明变量,也是这样的
private _maxId: number; //在类上定义字段
var item: VirtualObject; //在方法里定义变量。
在方法的可访问性上,支持public,这样就可以公开还是不公开。
参数和构造
在C#里面,我们经常同一个名字定义多个方法,使用不同的参数类型区分,但是在javascript中不允许,所以TypeScript也不允许。由于上面的原因,你也就能理解只能有一个构造函数。下面是他的构造函数例子:
constructor( objectContainer: VirtualObjectContainer, objectBinder:IObjectBinder ) { this._objectContainer = objectContainer; this._binder = objectBinder; }
基于javascript的概念,也就没有ref out in这样的关键字,但有命名方式访问参数和可选参数。
我也没有发现override关键字,虽然据说0.8之后新增了。
好了,更多的细节需要你慢慢研究规范文档了,这篇文档可以帮助你入门,使用愉快。
相关文章推荐
- 使用TypeScript开发微信小程序的方法
- 使用JBuilder开发J2ME程序
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(二)
- Golang 使用 Beego 与 Mgo 开发的示例程序
- 使用C++开发wxWidgets程序
- 使用ADO封装类的数据库程序开发实例[第二版] (下)
- Mac OS X 下开发 Android 程序时使用 USB 连真机调试
- 使用J2SE1.4开发CORBA程序(一)
- 如何在Linux使用Eclipse + CDT开发C/C++程序?
- 使用Eclipse RCP进行桌面程序开发(五):2D绘图
- 使用Axis开发Web Service程序整合 spring
- [转]如何使用EditPlus配置程序开发环境(NASM)
- HTML5开发使用Eclipse通过WIFI调试Android程序
- 使用Qt开发运行于WinCE上的程序
- 详解使用mpvue开发github小程序总结
- 笔记1-从毕业生到程序员:使用C#开发商业软件
- Win下使用Eclipse开发scala程序配置(基于Hadoop2.7.3集群)
- 使用VirtualEarth开发地图程序
- SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework
- Windows Moible, Wince 使用.NET Compact Framework的进行蓝牙(Bluetooth)广播程序的开发