Могу ли я получить доступ к «объекту класса» внутри тела класса в машинописном

голоса
2

Могу ли я сделать что-то похожее на CoffeeScript или Ruby, где я могу создать class- «Макросы»

class A
    # events adds the class method listenTo to the class (not to the prototype)
    # listenTo will make all instances of A a listener to the given Event
    events @

    # this will register instances of A to listen for SomeEvents
    # the event broker (not here in this code) will specifically look
    # for a method called onSomeEvent(event)
    @listenTo SomeEvent

    # and then later
    onSomeEvent: (event)-> #do what ever is needed

Это создаст следующий код Javascript

var A;
A = (function() {
   function A() {}
   events(A);
   A.listenTo(SomeEvent);
   A.prototype.onSomeEvent = function(event) {};
   return A;
})();
Задан 02/10/2012 в 08:41
источник пользователем
На других языках...                            


1 ответов

голоса
2

Глядя на вашем примере, если вы пишете это:

function events(A:any) {
    A.listenTo = function(arg:any){alert(arg);};
}

class A {
    public onSomeEvent(event:any) {
        //do stuff  
    }
    constructor {
        events(A);
        (<any>A).listenTo("SomeEvent");
    }
}

в машинописном, он будет компилировать в:

function events(A) {
    A.listenTo = function (arg) {
        alert(arg);
    };
}
var A = (function () {
    function A() {
        events(A);
        (A).listenTo("SomeEvent");
    }
    A.prototype.onSomeEvent = function (event) {
    };
    return A;
})();
Ответил 03/10/2012 в 23:43
источник пользователем

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