/TypeScript-Knockoutjs

TypeScript interface declarations for Knockoutjs 2.2

TypeScript-Knockoutjs

Example:

module app.models {
    export class contact {
        Id: number = 0;
        Name = ko.observable('');
        SurName = ko.observable('');
        FullName;
        constructor () {
            this.FullName = ko.computed(()=>{
                return this.Name() + " " + this.SurName();
            });
        }
    }
}
module app.viewModels{
    export class contacts {
        items = ko.observableArray([]);
        addContact(){
            this.items.push(new app.models.contact);
        };
    }
}

ko.extenders['logChange'] = (target, option)=>{
    target.subscribe(function(newValue) {
       console.log(option + ": " + newValue);
    });
    return target;
};

ko.bindingHandlers['hasFocus'] = {
    init: (element, valueAccessor)=>{
                   
    },
    update: function(element, valueAccessor) {
        var value = valueAccessor();
        if (ko.utils.unwrapObservable(value))
            element.focus();
        else
            element.blur();
    }
};
var viewModel = new app.viewModels.contacts;
ko.applyBindings(viewModel);