如何在 vuejs 3 中为 createApp(App) 函数设置类型?

BLU*_*LUE -1 typescript vue.js vuejs3

我在打字稿上使用带有 firebase 的 vue3。

// 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')
  }
})
Run Code Online (Sandbox Code Playgroud)

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

Psi*_*dom 7

createApp返回一个App实例。由于您已经App导入了,您需要在导入时重命名类型。但是注意app.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')
  }
})
Run Code Online (Sandbox Code Playgroud)