vue3中provide,inject类型丢失?

// xx.ts
export default {
  install: (app: App, { connection, options }: IScoket) => {
    const socket = io(connection, options)
    app.provide('socket', socket) // socket这里类型是有的
  }
}

image.png


<--app.vue-->
<script setup lang="ts">
    const socket = inject('socket')
    // socket类型没了
</script>

image.png

阅读 3.1k
1 个回答

inject 本身没办法从其参数推断出来结果类型,所以必须指定,比如

inject<Socket<DefaultEventsMap, DefaultEventsMap>>("socket")

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题