国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

c#程序員對TypeScript的認識過程

2019-11-20 12:13:00
字體:
來源:轉載
供稿:網友

簡介

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

好了,更多的細節需要你慢慢研究規范文檔了,這篇文檔可以幫助你入門,使用愉快。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上思县| 盖州市| 云安县| 齐齐哈尔市| 龙岩市| 建阳市| 永善县| 启东市| 保定市| 米易县| 望城县| 平南县| 金溪县| 高淳县| 荃湾区| 紫云| 六枝特区| 聂拉木县| 南汇区| 德阳市| 吉隆县| 南通市| 池州市| 措美县| 乐亭县| 肇源县| 樟树市| 永城市| 维西| 三穗县| 麻栗坡县| 呼和浩特市| 乐业县| 伊春市| 广元市| 江达县| 平乐县| 吉隆县| 琼海市| 双桥区| 利川市|