'what is the typescript type of app in vue 3
I am using Vue 3 and vue-auth together.
For vue-auth, my project needs to create http/index.ts, containing:
import axios from 'axios';
axios.defaults.baseURL = process.env.VUE_APP_API_URL;
export default (app) => {
app.axios = axios;
app.$http = axios;
app.config.globalProperties.axios = axios;
app.config.globalProperties.$http = axios;
}
but here I have a type error for app:
How can I fix this?
Solution 1:[1]
app here would be an application instance, which the vue package exports as App. And if you want to attach axios and $http to the application instance, you'd have to use an any-type assertion.
?
import type { App } from 'vue';
import axios from 'axios';
axios.defaults.baseURL = process.env.VUE_APP_API_URL;
?
export default (app: App) => {
(app as any).axios = axios;
(app as any).$http = axios;
app.config.globalProperties.axios = axios;
app.config.globalProperties.$http = axios;
}
Solution 2:[2]
This is not exactly an error, but rather a warning that if you don't define a type, the parameter will have the type: any. In that case, the IDE just advises you to use any, or whatever type you want
export default (app: any) => {
app.axios = axios;
app.$http = axios;
app.config.globalProperties.axios = axios;
app.config.globalProperties.$http = axios;
}
Is possible to disable this warning adding "noImplicitAny": false at your tsconfig.json if you want (:
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | tony19 |
| Solution 2 |

