问答

vuex4到底怎么优雅的与typescript结合使用?

作者:admin 2021-04-21 我要评论

首先排除装饰器写法,个人偏见,实在不喜欢 然后我看了下网上不不使用装饰器的写法,当用到modules的时候,那个类型定义,真实恶心到我了。贴个代码片段吧,比如...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

首先排除装饰器写法,个人偏见,实在不喜欢

然后我看了下网上不不使用装饰器的写法,当用到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就必须写这样又臭又长的类型声明吗?还是说有其它优雅使用方式,但是我不知道?欢迎拍砖

###

typescript 是静态类型检查语言,最后都会被编译成 js,装饰器这种元编程实践方式,对于编译时的 typescript 以及框架的视图编译器再合适不过。
并且 ts 之父也是 C# 之父,借鉴 C#/Java 的注解也是自然而然的,否决了语言的推荐实践,其他hacker 方式来使用这个语言,总是优雅不起来,最好还是接受它的实践方式,顺风而行。

###

不知道vuex4是什么,但首先作者写了这么详细的类型,为的是帮助你在IDE里使用时可以得到正确的语法提示。如果不喜欢可以直接改成:

export type AppStore = any

新手上路,求赞求赞。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • vuex4到底怎么优雅的与typescript结合

    vuex4到底怎么优雅的与typescript结合

  • webpack打包ts如何自动生成声明文件

    webpack打包ts如何自动生成声明文件

  • Ant Design Vue 的 Modal 属性 afterCl

    Ant Design Vue 的 Modal 属性 afterCl

  • 淘宝 天猫爬虫 验证码

    淘宝 天猫爬虫 验证码

腾讯云代理商
海外云服务器