首页 > 网站 > 建站经验 > 正文

c#程序员对TypeScript的认识过程

2019-11-02 15:54:37
字体:
来源:转载
供稿:网友

   本文向大家详细展示了从C#程序员的视角学习TypeScript的过程,主要是针对这两种语言的异同进行了简单的对比学习,希望对大家能够有所帮助。

  简介

  TypeScript一直发展不错,我们公司在开发新功能时,考虑到程序的可维护性,使用了TypeScript编写浏览器上的程序,我们是从零开始使用TypeScript,甚至我连javascript也是半罐子,本文描述了一个c#程序员认识TypeScript的过程。

  注:本文编写是基于Typescript0.8版本,而且初用,可能过时,具体规范可以参考http://www.typescriptlang.org

  命名空间和类

  作为面向对象的开发人员思维,第一个想到的是TypeScript如何定义类,由于正好我们项目服务端(C#)的原理和客户端(TypeScript)原理完全相同,所以这里正好用C#与TypeScript对比。

  C#声明类

  ?

1 2 3 4 using System; namespace Digiwin.Mars.VirtualUI.Engine { internal sealed class Decoder {} }

  TypeScript声明类

  ?

1 2 3 4 ///<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#的方法

  ?

1 2 3 4 5 6 7 /// <summary> /// 解码变更集 /// </summary> /// <param name="reader"> 一个变更集读取器对象 </param> public void DecodeChangeSet(ChangeRecordReader reader) { //解码上下文对象 var ctx = new DecodeContext();

  TypeScript声明方法

  ?

1 2 3 4 5 6 7 8 /** * 传入变更集,将其解码到当前的对象容器。 * @param {System.Erp.VirtualUI.Engine.IChangeRecordReader} reader - 提供记录集。
最新搞笑图片[www.62-6.com/1/pic/]
*/   public Decode(reader: IChangeRecordReader): void { //解码上下文对象 var ctx = new DecodeContext();

  我们首先看到c#的xml 文档专用注释也是支持的,不同他使用JsDoc的规范。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表