Búsqueda de sitios web

javascript - ¿Cómo declarar un componente knockout en typescript?


Estoy intentando seguir un ejemplo para crear un componente en Knockout.

http://knockoutjs.com/documentation/component-overview.html

Pero tengo que escribir un código en TypeScript. Entonces, ¿cómo puedo registrar un componente en Knockout usando TypeScript?

¿Qué debería escribir en el archivo .ts para convertirlo en algo como lo siguiente?

ko.components.register('like-widget', {
viewModel: function(params) {

Empecé a escribir código en el constructor pero no sé cómo completarlo.

class TodayViewModel {
todayWidget: KnockoutComponents;
config: KnockoutComponentTypes.Config;
constructor() {
    this.config.template = "sdfs.html";
    this.todayWidget.register("like-widget", this.config);
}}export = TodayViewModel;

Respuesta #1

Intenta utilizar este enfoque:

// import knockout
import ko = require("knockout");

// your viewmodel class
class TodayViewModel {
    todayText = ko.observable<string>();
}


// register the component
ko.components.register("like-widget", {
    viewModel: TodayViewModel,
    template: "<span data-bind='text: todayText'></span>"
});

P.D. necesitarás knockout.TypeScript.DefinitelyTyped