knockout.js - Typescript 中的 Knockout Viewmodel

标签 knockout.js typescript

我们应该如何在 typescript 中声明 View 模型?

作为类、模块还是作为 var/函数?

在 definitelytyped 示例中,他们主要使用 var 和 function https://github.com/borisyankov/DefinitelyTyped/blob/master/knockout/tests/knockout-tests.ts

编辑:谢谢 Basarat - 在此编辑中,我扩展了问题: 如果我使用类,我想它应该是这样的:

class Player
{
    min:KnockoutObservable<number>;
    constructor(min:number=0)
    {
        this.min=ko.observable(min);
    }
}

但是应该如何定义 computed 呢?

最佳答案

您可以将计算与泛型(最新的 Typescript 0.9)一起使用,只需在声明中定义类型,然后在构造函数中您将为调用 ko.computed 的结果赋值:

export class Inbox extends vm.BriskIdeaViewModel {

    public rapidEntryText = ko.observable<string>();
    public todosActive: KnockoutComputed<Array<ITodo>>;

    constructor() {
        super();
        this.todosActive = ko.computed(() => {
            return _.filter(this.dataContext.todos(), x => !x.isDone());
        });
    }
}

关于knockout.js - Typescript 中的 Knockout Viewmodel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17342918/

相关文章:

javascript - "js"方法在 gulp 上做了什么(对于使用 gulp-typescript 的 Typescript 项目)

javascript - 我在 Vite 3.2.4 版本中不断收到错误,显示 `[vite:esbuild] The service is no longer running: write EPIPE`

javascript - observablearray 中的对象 KnockoutJs

javascript - 手动订阅调用updateFromJS导致死锁

javascript - knockout 自定义点击绑定(bind),返回true防止点击劫持?

javascript - System.config() 调用 <head> 或 <body>?

javascript - 多次触发全局混合 - Vue

javascript - 模板中的knockoutjs : binding to an observable property outside of an array,

javascript - KO radio 可以工作,但未按照检查进行初始化

javascript - Typescript 属性装饰器 - 需要帮助以了解以下情况如何发生?