vuex4 到底怎么优雅的与 typescript 结合使用?
然后我看了下网上不不使用装饰器的写法,当用到 modules 的时候,那个类型定义,真实恶心到我了。贴个代码片段吧,比如我有一个 app module,这个模块 Store 的类型定义大致长下面这样,这玩意真是给碳基生物用的吗?能看懂,但是代码真实又臭又长。
“`
export type AppStore<S = AppState> = Omit<VuexStore<S>, ‘getters’ | ‘commit’ | ‘dispatch’>
& {
commit<K extends keyof Mutations, P extends Parameters<Mutations[K]>[1]>(
key: K,
payload: P,
options?: CommitOptions
): ReturnType<Mutations[K]>
} & {
dispatch<K extends keyof Actions>(
key: K,
payload: Parameters<Actions[K]>[1],
options?: DispatchOptions
): ReturnType<Actions[K]>
};
“`
所以,现在 vuex4 的现状就是不用装饰器写 ts 就必须写这样又臭又长的类型声明吗?还是说有其它优雅使用方式,但是我不知道?欢迎拍砖