网站搜索

angular - 类型为 'typeof Store' 的参数不能赋值给类型为 'Store' 的参数


我正在尝试扩展一个使用 ngrx 的 Angular 服务,但我遇到了这个类型错误

Argument of type 'typeof Store' is not assignable to parameter of type 'Store<AppState>'

这是我的父类:

import { Store } from '@ngrx/store';
import { AppState } from '../store/file-uploader.state';
import { AbstractStorage } from '@storage';

export class FileUploaderService {
    constructor(
        private store: Store<AppState>,
        private storage: AbstractStorage,
    ) { }
}

以及我的子类:

import { Store } from '@ngrx/store';
import { AppState } from '../store/file-uploader.state';
import { AbstractStorage } from '@storage';

export class DataSourceService extends FileUploaderService implements AbstractFileUploader  {
    constructor() {
        super(Store, AbstractStorage)
    }
}

我必须将这两个参数传递给 super。我尝试过传递 Store<AppState>,但是它说正在将 Appstate 作为一个值而不是类型。因此我不知道如何给这个参数指定类型。有人知道如何正确声明这个 super 吗?

答案#1

你应该将实例传递给 super 而不是类型。你可以尝试以下代码,看看是否有帮助:

    export class DataSourceService extends FileUploaderService implements AbstractFileUploader  {
      constructor(private store: Store<AppState>, private storage: AbstractStorage) {
          super(store, storage);
      }
    }