При использовании селекторов с параметрами в NGXS вы возвращаете функцию создания селектора, но в этом случае мне нужно установить тип возвращаемого значения селектора single
на any
, а на самом деле это AccountDetails
.
@Selector([AccountsDbState])
public static single(id: string): any {
return createSelector([AccountsDbState], (state: RootStateModel) => {
return state.database.accounts.items.find(x => x.id === id);
});
}
Если попытаться ввести его как AccountDetails
, я получаю следующую ошибку от intellisense:
Тип '(состояние: RootStateModel) => AccountDetails' отсутствуют следующие свойства из типа ' AccountDetails ': id, code, OpeningBalance, OpeningDate и еще 3. Ts (2740)
Есть ли способ правильно набрать этот тип селекторов?
--- ОБНОВЛЕНИЕ ---
Полное содержимое файла селектора:
import { createSelector, Selector } from '@ngxs/store';
import { AccountDetails } from '@models/accounts';
import { RootStateModel } from '@state/root-state';
import { AccountsDbState } from './accounts.state';
import { DatabaseStoreStateModel } from 'ngx-rbk-utils';
export class AccountsDbSelectors {
@Selector([AccountsDbState])
public static all(state: DatabaseStoreStateModel<AccountDetails>): AccountDetails[] {
return state.items;
}
@Selector([AccountsDbState])
public static single(id: string): any {
return createSelector([AccountsDbState], (state: RootStateModel) => {
return state.database.accounts.items.find(x => x.id === id);
});
}
}
Примеры в документации NGXS Selector не устанавливают типы возврата ни в одной функции: (