typescript在新的ve3项目中不工作



使用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;

最新更新