我正在试图弄清楚如何阅读以下语法:
type Bob<T extends Alice = Alice> = ....
我了解扩展,这意味着提供的类型受到Alice的约束.但之后的作业(job)意味着什么呢?
阅读TS文档并在谷歌上搜索问题时,我找不到任何东西来解释这个问题,可能是因为我不知道该搜索什么.
我正在试图弄清楚如何阅读以下语法:
type Bob<T extends Alice = Alice> = ....
我了解扩展,这意味着提供的类型受到Alice的约束.但之后的作业(job)意味着什么呢?
阅读TS文档并在谷歌上搜索问题时,我找不到任何东西来解释这个问题,可能是因为我不知道该搜索什么.
那是default type argument.对于Bob
等通用类型,这意味着您可以省略类型参数,并且类型判断器将使用默认值. 所以你可以写Bob<Carol>
并得到Bob<Carol>
,但如果你只写Bob
,你就会得到Bob<Alice>
. 如果没有默认参数,您必须显式写出Bob<Alice>
.