在 TypeScript 中使用 KnockoutObservableArray 时出错

Error when using KnockoutObservableArray in TypeScript

我有以下代码:

class IndexViewModel {
    projects: KnockoutObservableArray<Project>;

    constructor() {
        this.projects = ko.observableArray<Project>([]);
    }

    filteredList: KnockoutComputed<Project[]> = ko.computed(() => {
        var elements = ko.utils.arrayFilter(this.projects(), (item: Project) => {
           //do something
        });
        //return something
        })
    }

但是当我加载页面时,出现 JavaScript 错误,即 TypeError: _this.projects is not a function index-ViewModel_test.js

该部分的渲染 JavaScript 是,

this.filteredList = ko.computed(function () {
            var elements = ko.utils.arrayFilter(_this.projects(), function (item) {
                //return something
            });
            //return something
        })

我在这里错过了什么?

问题是计算 filteredListprojects 成员尚未定义。在 class 的构造函数中移动计算解决了我的问题。 代码:

constructor() {
        this.projects = ko.observableArray<Project>([]);
        this.filteredList = ko.computed(() => {
            var elements = ko.utils.arrayFilter(this.projects(), (item: Project) => {
                //return something
            });
            //return something
        });
    }