interface Squel<S extends Select = Select,
U extends Update = Update,
D extends Delete = Delete,
I extends Insert = Insert,
C extends Case = Case> {
扩展后我无法理解作业。有人可以解释吗?我在Typescript官方文档中找不到。
答案 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(滚动到通用参数默认值)