关于泛型
来源: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时又传这个泛型进去,是为了语法提示吗?
012020-11-17