Я новичок в TypeScript и пытаюсь вызвать действие из другого класса, и я получаю такую ошибку, может быть, невозможно использовать функции через импорт, но только через @inject
? В чем может быть проблема, я не понимаю
P.S. установлено @types
:
"@types/react": "^16.8.22",
"@types/react-dom": "^16.8.4",
"@types/react-router-dom": "^4.3.4",
import {
observable,
action,
autorun,
set,
toJS,
extendObservable
} from "mobx";
import commonStore from "./common";
export default class Authentication {
@action login = async() => {
this.inProgress = true;
this.errors = undefined;
try {
const token = await requestApi({
method: "post",
url: `/auth/login`,
data: {
login: this.username,
pass: this.password
}
});
commonStore.setToken(token); // Property 'setToken' does not exist on type 'typeof CommonStore'
} catch (error) {
axiosErrorHandler(error);
}
}
}
CommonStore
export default class CommonStore {
@observable token = window.localStorage.getItem("jwt");
constructor() {
reaction(
() => this.token,
token => {
if (token) {
localStorage.setItem("jwt", token);
} else {
localStorage.removeItem("jwt");
}
}
);
}
@action setToken(token: string) {
this.token = token;
}
}
index.ts store
import Authentication from "./models/authentication";
import Common from "./models/common";
class ObservableListStore {
@observable authentication = new Authentication();
@observable common = new Common();
}
export const store = new ObservableListStore();