分配意味着接口Squel <s extended =“” select =“ Select”>

时间:2018-12-22 08:44:41

标签: typescript-typings

interface Squel<S extends Select = Select,
    U extends Update = Update,
    D extends Delete = Delete,
    I extends Insert = Insert,
    C extends Case = Case> {

扩展后我无法理解作业。有人可以解释吗?我在Typescript官方文档中找不到。

1 个答案:

答案 0 :(得分:2)

这些是通用参数默认值。它们的作用类似于常规函数参数的默认值。

它们允许您不为类型参数提供类型参数

let squel: Squel/*< no need to pass type arguments, yay! >*/

如果您的类型是这样的:

interface Squel<S extends Select,
U extends Update,
D extends Delete,
I extends Insert,
C extends Case>

然后,您必须始终传递类型参数:

let squel: Squel<Select, Update, Delete, Insert, Case>
                ^^^   this part is mandatory now   ^^^

P.S。打字稿手册似乎没有有关此功能的信息,而是2.3版本does have it(滚动到通用参数默认值