Контекст использует Mobx с React, пытается написать класс, который принимает объект с хранилищами и создает общую ссылку.
class RootStore<T, K extends keyof T> {
constructor(stores: T) {
const storesWithRef: T = Object.keys(stores).reduce((acc: T, key: K) => {
const store = stores[key];
return ({
...acc,
[key]: store.connectStore(this),
});
}, {});
Object.assign(this, storesWithRef);
}
Это интерфейс для базы каждого магазина -
export interface BaseStoreInterface<T> {
rootStore: T;
connectStore: (rootStore?: T) => T;
externalStore: boolean;
}
Этот код работает нормально, но TypeScript дает мне две ошибки -
String is not assignable to type 'K'
и, -
Я понимаю, что нужно сделать, но я просто не мог заставить это работать.
Я использую TypeScript@3.4.5
Код в порядке, нет ошибок, нет ничего, добавление ts-ignore
к этим ошибкам приводит к хорошему времени выполнения.
Есть идеи?