本文向大家詳細展示了從C#程序員的視角學習TypeScript的過程,主要是針對這兩種語言的異同進行了簡單的對比學習,希望對大家能夠有所幫助。
簡介
TypeScript一直發(fā)展不錯,我們公司在開發(fā)新功能時,考慮到程序的可維護性,使用了TypeScript編寫瀏覽器上的程序,我們是從零開始使用TypeScript,甚至我連javascript也是半罐子,本文描述了一個c#程序員認識TypeScript的過程。
注:本文編寫是基于Typescript0.8版本,而且初用,可能過時,具體規(guī)范可以參考http://www.typescriptlang.org
命名空間和類
作為面向對象的開發(fā)人員思維,第一個想到的是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 - 提供記錄集。我們首先看到c#的xml 文檔專用注釋也是支持的,不同他使用JsDoc的規(guī)范。
新聞熱點
疑難解答