Typescript destek ad mu?

oy
52

Başlıkta gibi: does typescript destek ad? Eğer öyleyse, bunları nasıl kullanırım?

Oluştur 05/10/2012 saat 01:33
kaynak kullanıcı
Diğer dillerde...                            


5 cevaplar

oy
55

Typescript tanımlamanızı sağlar modülleri yakından Aşağıdaki örnek spec alınır ECMAScript'te 6. olacak şeyle ilgili:

module outer {
    var local = 1;
    export var a = local;
    export module inner {
        export var x = 10;
    }
}

Gördüğünüz gibi, modüller isimleri var ve iç içe olabilir. Eğer modül adlarında nokta kullanıyor, aşağıdaki gibi typescript iç içe modülleri bu derlenir:

module A.B.C {
    export var x = 1;
}

Bu eşittir

module A {
    module B {
        module C {
            export var x = 1;
        }
    }
}

Ne de önemlidir tek typescript programda aynı modül adını yeniden eğer, kod aynı modülde ait olacaktır. Dolayısıyla, size hierarchichal ad alanları uygulamak için iç içe modüllerini kullanabilir.

Cevap 05/10/2012 saat 09:12
kaynak kullanıcı

oy
28

Versiyon 1.5 itibariyle typescript destekler namespaceanahtar kelime. Ad alanları iç modüllerin eşdeğerdir.

Gönderen typescript yenilikler :

Önce:

module Math {
    export function add(x, y) { ... }
}

Sonra:

namespace Math {
    export function add(x, y) { ... }
}

Bir iç modülünü tanımlama, şimdi hem kullanabilir moduleve namespace.

Cevap 24/07/2015 saat 18:01
kaynak kullanıcı

oy
9

İşte typescript ad örneğidir:

///<reference path='AnotherNamespace/ClassOne.ts'/>
///<reference path='AnotherNamespace/ClassTwo.ts'/>

module MyNamespace
{
    import ClassOne = AnotherNamespace.ClassOne;
    import ClassTwo = AnotherNamespace.ClassTwo;

    export class Main
    {
        private _classOne:ClassOne;
        private _classTwo:ClassTwo;

        constructor()
        {
            this._classOne = new ClassOne();
            this._classTwo = new ClassTwo();
        }
    }
}

Daha buradan bakabilirsiniz: http://www.codebelt.com/typescript/javascript-namespacing-with-typescript-internal-modules/

Cevap 03/11/2013 saat 22:54
kaynak kullanıcı

oy
7

Orada hayır 'ad' anahtar kelimedir ama ve ( 'ihracat' anahtar kelimeyi kullanarak) dış modülleri ( 'modülü' anahtar kelimesini kullanarak) iç modülleri mantıksal hiyerarşileri içine kodunuzu bölme benzer bir yol sunar.

Cevap 05/10/2012 saat 01:35
kaynak kullanıcı

oy
3

Yanlış...

module A.B.C {
    export var x = 1;
}

eşittir

module A {
    export module B {
        export module C {
            export var x = 1;
        }
    }
}

Eğer modül A dışında yazabilir çünkü:

var y = A.B.C.x;

Fakat :

module A {
    module B {
        module C {
            export var x = 1;
        }
        var y = C.x; // OK
    }
    //var y = B.C.x; // Invalid
}
//var y = A.B.C.x;   // Invalid
Cevap 21/07/2015 saat 11:45
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more