函数中的对象参数问题

函数中的对象参数问题

老师,Page中的参数count,在对象参数内部好像没有定义过吧?
为啥调用的时候,可以使用这个count参数呀?
不是要定义过参数才能使用的吗?

https://img1.sycdn.imooc.com//climg/62c44a1009ce314e05860222.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

这里的类型系统比较复杂。查看Page的定义可以看到:

        interface Constructor {

            <TData extends DataOption, TCustom extends CustomOption>(

                options: Options<TData, TCustom>

            ): void

        }

可以进一步查看Option的定义方式。

由于其中有extends,所以认为虽然有没有定义过的参数count,但还是合法的。

  • lieh1203 提问者 #1

    老师,这部分感觉挺复杂的,有点看不懂,像extends类型后面课程会讲吗?

    2022-07-07 17:12:32
  • ccmouse 回复 提问者 lieh1203 #2

    Options的定义是:

            type Options<

                TData extends DataOption,

                TCustom extends CustomOption

            > = (TCustom & Partial<Data<TData>> & Partial<ILifetime>) &

                ThisType<Instance<TData, TCustom>>

    在后面的接口,类,范型方面会讲到这些基础知识。不过的确没有这么复杂的应用,一般框架才会有这样的需要。

    这里有几个没有讲的知识点。

    范型约束(可以学完我课中的范型后查看其范型约束一节):https://www.jianshu.com/p/98e2fe8ee0ec

    交叉类型:https://blog.csdn.net/poppy995/article/details/123982399

    另外,Partial和ThisType都是TypeScript自带的工具类型。这两个了解一下就行,不需要很深入。

    Partial: https://www.jianshu.com/p/9057bb880553

    ThisType: https://blog.csdn.net/shadowfall/article/details/121339774

    2022-07-10 10:35:59
  • lieh1203 提问者 回复 ccmouse #3

    好的,谢谢老师

    2022-07-10 16:05:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师