ошибка TS2322: тип 'void' нельзя назначить типу 'Promise <void>|JQueryPromise <void> - PullRequest
0 голосов
/ 14 июня 2019

Я использую метод remove для выдачи значения для хранения.Но получаю ошибку как error TS2322: Type 'void' is not assignable to type 'Promise<void> | JQueryPromise<void>'. - как это исправить?

вот пример того, что я использую:

https://js.devexpress.com/Demos/WidgetsGallery/Demo/DataGrid/CRUDOperations/Angular/Light/

вот мой код ts:

ngOnChanges() {

        if (!this.subsystems) { return; }

        this.dataSource = new CustomStore({
            key: 'Id',
            load: (loadOptions) => this.loadData(loadOptions),
            update: (key: number, values) => this.updateData(key, values),
            remove: (key) => this.removeData(key) //getting error here
        });

    }

    loadData(loadOptions) {
        return new Promise((resolve, reject) => {
            this.dataGrid.columns = this.columns;
            resolve({ data: this.subsystems, totalCount: 10 });
        });
    }

    removeData(key: any) {
        this.deleteId.emit(key);
    }

error attached

1 Ответ

1 голос
/ 14 июня 2019

ошибка TS2322: тип 'void' нельзя назначить типу 'Promise | JQueryPromise '

Затем функция, подчеркнутая красным, возвращает обещание.

    removeData(key: any) {
        this.deleteId.emit(key);
        return Promise.resolve();
    }

Это быстрое и несколько грязное исправление. В идеале это обещание будет выполнено только после того, как тот, кто слушает this.deleteId, завершит все свои дела (но если там не произойдет ничего асинхронного, с вами все будет в порядке).

...