简介

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之后新增了。

好了,更多的细节需要你慢慢研究规范文档了,这篇文档可以帮助你入门,使用愉快。

推荐一款作图神器:ProcessOn

本人近日发现一款作图神器:ProcessOn 它是一款在线的作图工具,完全国产,前台是用HTML5  Canvas加javascript做绘图,后台用java实现数据处理和图片生成, 整站UI基本类似谷歌docs,整体给我的感觉很炫,也很舒服,我寻找到他的团队了解了一下,也是几个人的小团队,开发用了近2年的时间,他们表示ProcessOn会永久免费,目前正在创业初期,个人感觉,东西挺好,但没看出来怎么盈利(貌似我想多了..)。接下来就给大家详细介绍一下这款作图神器。

整个网站最核心的就是它的设计器,上面也说了就是用HTML5加javascript实现的,体验上确实很谷歌的产品很相似,当然它是不需要下载的,因为免费,所以自然没有盗版之说。整个设计器左边是原型图库,右侧是画布,操作就是从左侧图形库中拖出圆形图放到画布即可,鼠标放到图形旁边自动变成十字架,按住左键自动出现连接线,整个操作很顺畅、简单。常规的改变图形大小、背景颜色等都是有,基本就是活生生的在线版Visio(但是比Visio好用很多)。

www.ProcessOn.com

ProcessOn还有一个比较强悍的功能就是在线实时协作,就是说支持多人同时对一个文件进行编辑(还可以聊天),这个技术也是HTML5技术实现的,很多时候做一个完整文件可能跨部门或者跨阶层,很多是自己不了解不熟悉的,当然就需要相关人员来负责出来,现在也有一些类在线协作的应用出现,例如国内的Teambition就是专门项目协作管理的,在这里不多说,可以自行了解一下。

ProcessOn的社交体系以及小组在这里就不过多介绍了,基本和国内见到差不多,它有一个图库栏目。数据全部来自用户分享的作品,有些图还是很有价值的。其他就没什么特色了(或许是我还没发现)。好吧,我说完了。

ProcessOn官方给网站 www.processon.com

TypeScript开发程序的更多相关文章

  1. 使用TypeScript开发程序

    简介 TypeScript一直发展不错,我们公司在开发新功能时,考虑到程序的可维护性,使用了TypeScript编写浏览器上的程序,我们是从零开始使用TypeScript,甚至我连javascript ...

  2. 如何用TypeScript开发微信小程序

    微信小程序来了!这个号称干掉传统app的玩意儿虽然目前处于内测阶段,不过目前在应用号的官方文档里已经放出了没有内测号也能使用的模拟器了. 工具和文档可以参考官方文档:https://mp.weixin ...

  3. 使用Visual Studio Code搭建TypeScript开发环境

    使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...

  4. 使用VS Code调试TypeScript游戏程序JsTankGame成功!!!

    TypeScript游戏程序JsTankGame不是本人写的,是从CSDN下载的. JsTankGame是用Visual Studio开发的,因此在Visual Studio下调试非常顺畅.本人尝试用 ...

  5. 使用TypeScript开发ReactNative应用的简单示例

    最近小小尝试了下 ReactNative + TypeScript 开发APP,爬了无数坑之后总算弄出来个结果,重要的地方记录下,后面会附上示例代码: 1.开发工具的选择 windows 平台我接触的 ...

  6. TypeScript开发ReactNative之fetch函数的提示问题

    使用TypeScript开发ReactNative时,发现在类中调用 fetch 函数时IDE可能会提示找不到,无法加载,特别是当类中存在同名的 fetch 成员方法时更是郁闷了,虽然程序是可以执行的 ...

  7. 搭建typescript开发环境最详细的全过程

    搭建typescript开发示例https://github.com/Microsoft/TypeScriptSamples typescript案例https://www.tslang.cn/sam ...

  8. TypeScript开发环境搭建(Visual studio code)

    使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...

  9. 使用Visual Studio Code + Node.js搭建TypeScript开发环境

    Visual Studio Code搭建Typescript开发环境 —— 相关文章: http://www.cnblogs.com/sunjie9606/p/5945540.html [注意:这里仅 ...

随机推荐

  1. js中arguments

    arguments 每天一对象,JS天天见,今天我们来看看arguments对象及属性.arguments对象不能显式创建,arguments对象只有函数开始时才可用.函数的 arguments 对象 ...

  2. linux_vim_最佳快捷键

    如何使用vi文本编辑器     vi由比尔·乔伊(Bill Joy)撰写,所有UNIX like均默认安装此文本编辑器.详细简介请点击维基中文. 1.首先复制一个文件到/tmp目录(本例中为复制根目录 ...

  3. Swift游戏开发实战教程(霸内部信息大学)

    Swift游戏开发实战教程(大学霸内部资料) 试读下载地址:http://pan.baidu.com/s/1sj7DvQH 介绍:本教程是国内第一本Swift游戏开发专向资料. 本教程具体解说记忆配对 ...

  4. HDFS副本放置策略和机架感知

    副本放置策略 的副本放置策略的基本思想是: 第一block在复制和client哪里node于(假设client它不是群集的范围内,则这第一个node是随机选取的.当然系统会尝试不选择哪些太满或者太忙的 ...

  5. Swift语言指南(三)--语言基础之整数和浮点数

    原文:Swift语言指南(三)--语言基础之整数和浮点数 整数 整数指没有小数的整数,如42,-23.整数可以是有符号的(正数,零,负数),也可以是无符号的(正数,零). Swift提供了8,16,3 ...

  6. 在Mac电脑上为Dash制作docSet文档

    Dash是mac上的一款查看API的工具,里面能够直接下载大部分的API文档,可是有时候我们假设想把自己手里已有的文档也集成到Dash中,就须要我们自己动手了,事实上Dash官方也有教程怎样制作doc ...

  7. SQL Server 板机

    触发器是一种特殊类型的存储过程.们介绍的存储过程. 触发器主要是通过事件进行触发被自己主动调用运行的. 而存储过程能够通过存储过程的名称被调用. Ø 什么是触发器 触发器对表进行插入.更新.删除的时候 ...

  8. 在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持。

    原文:在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持. WAMPServer可以让开发者在Windows系统下快速搭建WAMP环境,它支持多版本的Apach ...

  9. MVC 5 Scaffolding多层架构代码生成向导开源项目

    asp.net MVC 5 Scaffolding多层架构代码生成向导开源项目(邀请你的参与)   Visual Studio.net 2013 asp.net MVC 5 Scaffolding代码 ...

  10. Linux 查看和删除进程

    1. 在 LINUX 命令平台输入 1-2 个字符后按 Tab 键会自动补全后面的部分(前提是要有这个东西,例如在装了 tomcat 的前提下, 输入 tomcat 的 to 按 tab).2. ps ...