老师请问这句是什么意思

来源:9-6 【reducer管理】combineReducers

北风一叶

2021-02-26

老师以下代码:

type Props = WithTranslation &
    ReturnType<typeof mapStateToProps> &
    ReturnType<typeof mapDispatchToProps>;

这一句是什么意思呢:ReturnType<typeof mapStateToProps> ,为何这里用一个ReturnType,typeof又代表什么呢,谢谢。

写回答

1回答

阿莱克斯刘

2021-02-27

同学你好,ReturnType 的用法来自typescript官网的Utility Types(类型利用)这个章节下。https://www.typescriptlang.org/docs/handbook/utility-types.html


除了returnType,还有Partial<Type>、Required<Type>、Readonly<Type>、Record<Keys,Type>、Pick<Type, Keys>、Omit<Type, Keys>、Exclude<Type, ExcludedUnion> 等等等等。这部分属于Typescript的高级用法,理解起来有点难度,但是非常重要。主要的目的是为了重复利用、修改某一个对象(或实例、或类型)的类型。


ReturnType

那么returnType是做什么用的呢?官网的描述很简单,比较费解,但是我们可以从例子来理解。

function getInt(a: string) {
    return parseInt(a);
}

type A = ReturnType<typeof getInt>; // => number

在上面的例子中,我们有一个getInt函数,传入一个string然后转化为number。

使用 typeof,我们可以获得getInt函数的签名,也就是(a: string) => number。ReturnType可以接受一个函数,然后返回这个函数被调用以后的返回类型(请注意,我们说的不是函数本身的类型,而是它被调用后的返回类型),也就是number。

这样处理的最大的好处就是,我们不需要在不同的函数中同步相同的返回类型,比如课程中的用法。

示例

以下是官网给出的关于returnType的解释和用法示例。

//img1.sycdn.imooc.com/szimg/60393bcb096102d919301760.jpg



2
1
北风一叶
非常感谢!谢谢老师!
2021-02-27
共1条回复

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

2017 学习 · 1031 问题

查看课程