// xx.ts
export default {
install: (app: App, { connection, options }: IScoket) => {
const socket = io(connection, options)
app.provide('socket', socket) // socket这里类型是有的
}
}
<--app.vue-->
<script setup lang="ts">
const socket = inject('socket')
// socket类型没了
</script>
inject
本身没办法从其参数推断出来结果类型,所以必须指定,比如inject<Socket<DefaultEventsMap, DefaultEventsMap>>("socket")