Я перевожу мое приложение vuejs на машинописный текст для лучшего обслуживания.Вот моя проблема:
Я создал TokenService
для извлечения токена администратора из локального хранилища:
// token.service.js
/*
Get the admin's token from localstorage.
@return {object} The token
*/
getToken() {
return localStorage.getItem("token")
}
Чтобы служба была доступна во всех компонентах без ее импортав каждом из них я добавил сервис к Vue.prototype
:
// main.js
Vue.prototype.$tokenService = TokenService
Но когда я пытаюсь получить доступ к this.$tokenService
из моего компонента AdminWorkerPage
, написанного на машинописном тексте, я получаю ошибку: TS2339: Свойство '$ tokenService' не существует для типа 'AdminWorkerPage'.
// AdminWorkerPage.ts
import { Vue, Component, Prop } from 'vue-property-decorator'
@Component({})
export default class AdminWorkerPage extends Vue {
broadcast(): Promise<void> {
token: this.$tokenService.getToken() // <-- $tokenService used here !
...
}
}
Но когда мой файл был написан в javascript, у меня не было проблем.
Как я могу сказать компилятору, что свойство существует в компоненте?