首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置主Vue 3 'app‘变量的“type”

如何设置主Vue 3 'app‘变量的“type”
EN

Stack Overflow用户
提问于 2021-09-20 16:16:12
回答 1查看 644关注 0票数 1

我正在尝试实现一个小型的打字稿Vue3应用,作为一个培训练习。我正在取得很好的进步,但遇到了一个障碍。我会感谢那些比我更有见识的人的一些建议。

我一直在使用消防基地建立授权,并正在实施路线警卫。这些工作,但用户直接在地址栏中键入新路由的情况除外。在这种情况下,它似乎重新创建了teh应用程序之前,它有有关的信息,在用户。因此,它认为用户为空,并呈现登录页。因此,我建议实施以下措施。

main.ts

代码语言:javascript
复制
import App from './App.vue'
import { createApp, App as Application } from 'vue'
import router from './router'

import { projectAuth } from './firebase/config'
import { onAuthStateChanged } from 'firebase/auth'

let app: Application

onAuthStateChanged(projectAuth, () => {
  if (!app) {
    app = createApp(App)     // type error on 'app'
      .use(router)
      .mount('#app')
  }
})

它作为一个纯Javascript实现工作,但在类型记录中抛出一个类型错误。

如何在上述代码中定义应用程序的类型?

我尝试过几种不同的方法,都是无效的,包括:

代码语言:javascript
复制
let app: typeof App 
let app: App<Element>
let app: typeof Application 

我想这是很简单的事情,但作为一名打字的新手,我却避之不及。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-20 16:24:41

App导入vue类型,将其重命名为Application,以避免使用App组件折叠,然后用Application类型注释app

代码语言:javascript
复制
import { createApp, App as Application } from 'vue'
let app: Application;

onAuthStateChanged(projectAuth, () => {
  if (!app) {
    app = createApp(App).use(router)
    app.mount('#app')       // do not chain mount after createApp
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69257746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档