使用Vue CLI (ve3, Babel, Typescript)创建新应用后,createApp函数返回的主应用对象上的'config'对象是不可访问的。
我可以看到Typescript 'App类型,以及关联的配置:AppConfig
但是VS Code强调访问'config'是错误的:
属性'config'在类型'ComponentPublicInstance<{}上不存在,{}, {}, {}, {}, {}, {}, {}, 假,ComponentOptionsBase<任何,任何,任何,,任何,任何,任何,任何,任何,{}祝辞祝辞的.ts (2339)
main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
const app = createApp(App).use(store).use(router).mount('#app')
app.config <-- can't do this
是的,这是因为mount方法返回ComponentPublicInstance
而不是vue
实例本身。由于您将其链接到createApp
方法,因此app
常量将不包含vue
实例。当然,不允许访问config属性。参见下面的函数签名:
mount(rootContainer: HostElement | string, isHydrate?: boolean, isSVG?: boolean): ComponentPublicInstance;
为了访问vue
实例的config属性,你需要像下面这样重写代码。
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
const app = createApp(App);
app.use(store);
app.use(router)
app.mount('#app');
// You'll be able to access the config now
app.config;