Proses pemahaman pengaturcara C# tentang kemahiran TypeScript_javascript

WBOY
Lepaskan: 2016-05-16 15:54:04
asal
1396 orang telah melayarinya

Pengenalan

TypeScript telah berkembang dengan baik Apabila syarikat kami membangunkan ciri baharu, kami mempertimbangkan kebolehselenggaraan program dan menggunakan TypeScript untuk menulis program pada penyemak imbas Kami menggunakan TypeScript dari awal, malah saya hanya mampu menggunakan javascript. Artikel ini menerangkan proses pengaturcara c# mengenali TypeScript.

Nota: Artikel ini ditulis berdasarkan versi Typescript 0.8, dan ia baru digunakan dan mungkin sudah lapuk Untuk spesifikasi tertentu, sila rujuk http://www.typescriptlang.org

Ruang nama dan kelas

Sebagai pembangun berorientasikan objek, perkara pertama yang terlintas di fikiran ialah bagaimana TypeScript mentakrifkan kelas Memandangkan prinsip pelayan projek kami (C#) adalah sama seperti prinsip pelanggan (TypeScript), kami hanya menggunakan C#. dan TypeScript di sini.

Kelas pengisytiharan C#

using System;
namespace Digiwin.Mars.VirtualUI.Engine {
internal sealed class Decoder {}
}

Salin selepas log masuk

Kelas pengisytiharan TypeScript

///<reference path="../Collections/ICollection.ts" />
module System.Erp.VirtualUI.Engine {
export class Decoder {}
}

Salin selepas log masuk
Pertama sekali, secara ringkasnya, terdapat konsep yang serupa dengan ruang nama Satu dipanggil ruang nama dan satu lagi dipanggil modul Ini bukan omong kosong.

Kedua, untuk merujuk kelas lain dalam C#, mula-mula anda perlu merujuk dll dalam fail projek, dan kemudian menggunakan ruang nama (pilihan) dalam pengepala fail Walau bagaimanapun, dalam TypeScript, tiada konsep sedemikian, dan a fail dirujuk secara langsung.

Dalam C#, kelas boleh mempunyai banyak peringkat seperti awam, dalaman, dsb., serta pengubah suai seperti dimeteraikan Lupakan tentang ini dalam TypeScript Menambah eksport adalah bersamaan dengan jenis umum, abstrak, nilai, dll. Ini nampaknya tidak boleh didapati.

Tetapi terdapat antara muka.

Kaedah dan ulasan

Kaedah C#

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

Salin selepas log masuk
Kaedah pengisytiharan TypeScript

    /**
     * 传入变更集,将其解码到当前的对象容器。
     * @param {System.Erp.VirtualUI.Engine.IChangeRecordReader} reader - 提供记录集。
     */

    public Decode(reader: IChangeRecordReader): void {
      //解码上下文对象
      var ctx = new DecodeContext();

Salin selepas log masuk
Kami mula-mula melihat bahawa ulasan khusus dokumen xml c# juga disokong, tidak seperti spesifikasi JsDoc yang lain.

Komen biasa juga menggunakan //, yang betul-betul sama dengan javascript.

Dalam pengisytiharan kaedah, TypeScript meletakkan parameter pulangan pada akhir, jenis parameter juga diletakkan selepas nama Jika anda mengisytiharkan pembolehubah, perkara yang sama berlaku

private _maxId: number; //Tentukan medan pada kelas

item var: VirtualObject; //Tentukan pembolehubah dalam kaedah.

Dari segi kebolehcapaian kaedah, orang ramai disokong, supaya ia boleh diketahui umum atau tidak.

Parameter dan pembinaan

Dalam C#, kami sering mentakrifkan berbilang kaedah dengan nama yang sama dan menggunakan jenis parameter yang berbeza untuk membezakannya, tetapi ini tidak dibenarkan dalam JavaScript, jadi TypeScript tidak membenarkannya.

Disebabkan sebab di atas, anda juga boleh memahami bahawa hanya ada satu pembina. Berikut ialah contoh pembinanya:

    constructor(

      objectContainer: VirtualObjectContainer,

      objectBinder:IObjectBinder

    ) {

      this._objectContainer = objectContainer;

      this._binder = objectBinder;

    }

Salin selepas log masuk
Berdasarkan konsep JavaScript, tiada kata kunci seperti ref out in, tetapi terdapat parameter capaian yang dinamakan dan parameter pilihan.

Saya tidak menjumpai kata kunci ganti, walaupun dikatakan ia telah ditambahkan selepas 0.8.

Baiklah, untuk butiran lanjut anda perlu mengkaji dokumen spesifikasi secara perlahan-lahan Dokumen ini boleh membantu anda mula dan menikmati penggunaannya.

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan