导入key什么意思??

来源:9-12 Vuex状态管理如何使用TS

小雨点3545254

2023-11-14

视频中

import type { InjectionKey } from 'vue'
export const key: InjectionKey<Store<State>> = Symbol()
这两段代码什么意思,怎么<Store<State>>泛型里面套泛型,这什么意思,没明白,老师能详细的讲解一下吗
<Store<State>>这是什么意思
写回答

1回答

西门老舅

2023-11-14

你好,State是类型,所以可以当泛型用,Store也是类型,所以也可以当泛型用。就像函数套函数。

foo(bar(baz()))

这里先执行Store<State>,结果再进行InjectionKey<上一步的结果>

这里的含义是:我们产生一个独一无二的key,而这个key是需要符合State的,这样在使用这个key的时候,就会有类型限制,只能跟指定的store进行配合调用,store也会用到State类型。

0
2
西门老舅
回复
小雨点3545254
首先vuex的使用是比较复杂的,并不是直接定义完方法就可以使用的,而是需要通过useStore()进行调用,这就给了TS跟Vuex配合增加了难度,所以TS不得不通过设置一个key来间接的让Vuex能够得到TS的支持,这就是这个key的意义。而另一个状态管理库Pinia就比较好的跟TS配合,因为Pinia是直接调用的。
2023-11-15
共2条回复

Vue3 + React18 + TS4入门到实战 系统学习3大热门技术

专为初级前端人员设计,系统性学习三大技术

261 学习 · 182 问题

查看课程