关于泛型

来源:6-11 Vuex 整合当前应用

见信

2020-11-16

关于泛型,看了这么久,也想了很多,还是有些懵,有时候又怕过渡思考,想得太多,以我看到现在的理解来看,TS应该是加载JS上的一层规范,我更多的理解是,如果在编写代码过程中,我创建了一个变量,函数之类的,我希望该变量,函数是什么样子,再来用ts对其座一层规范。

export interface GlobalDataProps {
  columns: ColumnProps[];
  posts: PostProps[];
  user: UserProps;
}
const store = createStore<GlobalDataProps>({
  state: {
    columns: testData,
    posts: testPosts,
    user: { isLogin: false }
  },

老师这节的代码,定义并导出了一个GlobalDataProps interface,我们希望一个对象具有columns,posts是一个对象,并且它们的属性需要跟ColumnProps,PostProps分别一样,但接下来我就感觉很迷。
createStore用到了一个泛型GlobalDataProps,看老师代码的样子,是希望store 里面的state为GlobalDataProps的样子,但是老师也没写成state:GlobalDataProps啊。
包括后面,使用store时,也是用了这个泛型:

import { GlobalDataProps } from '../store'

...
const store = useStore<GlobalDataProps>()

我现在就感觉整个人都很晕,对于这东西的理解,与应用,都有些不知所措,其实我觉得我并不想理解这东西,就只想会用这东西,就像鸭子辩型一样,但看了几遍文档之后,还是感觉有些不知道该如何正确使用。

写回答

1回答

见信

提问者

2020-11-16

而且我并不明白的是为什么后面使用store时又传这个泛型进去,是为了语法提示吗?

0
1
张轩
是为了语法提示 useStore 需要接受一个泛型,store 对象是被 app.use 注入到整个Vue 应用中的去,这个使用我们可以使用 useStore 访问到这个 store,但是这个时候没法推断出 store(完全是两个文件,两块内容) 中的类型,需要手动传入类型
2020-11-17
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程

相似问题

关于泛型

回答 1

泛型

回答 1

泛型

回答 1