首页 > 解决方案 > 如何在 vuejs 3 中设置 createApp(App) 函数的类型?

问题描述

我在打字稿上使用 vue3 和 firebase。

// main.ts
import { createApp } from 'vue'
import App from './App.vue'
import './registerServiceWorker'
import router from './router'
import store from './store'
import { auth } from './firebase'

// eslint-disable-next-line
let app: any

auth.onAuthStateChanged(() => {
  if (!app) {
    app = createApp(App)
      .use(store)
      .use(router)
      .mount('#app')
  }
})

我应该将什么类型设置为“app”变量?我尝试了 App,typeof App 但它失败了。

标签: typescriptvue.jsvuejs3

解决方案


createApp返回一个App实例。由于您已经App导入了一个,因此您需要在导入时重命名该类型。但是 noticeapp.mount返回了一个不同的类型,你不能在createApp不改变类型的情况下链接它:

import { createApp, App as Application } from 'vue'
import App from './App.vue'
// other imports

let app: Application 

auth.onAuthStateChanged(() => {
  if (!app) {
    app = createApp(App)
    app.use(store)
    app.use(router)
    app.mount('#app')
  }
})

推荐阅读