我不明白c类型标记语法: https://visualstudiomagazine.com/blogs/tool-tracker/2015/12/factory-functions-typescript.aspx
function CreateCustomer<c extends ICustomer>(cust:{new(): c;},
name: string, age: number): c
有人可以在3个不同的地方解释上面的c是什么吗?
答案 0 :(得分:2)
第一个c声明集合变量必须扩展ICustomer(在app中你可以拥有VIPCustomer,MegaCustomer ......)
然后第二个c是c的构造函数100%扩展ICustomer(将此对象返回到cust)的安全措施
最后一个c是整个函数的返回类型。
度过美好的一天!
答案 1 :(得分:1)
<c extends ICustomer>
表示“c
是一种扩展ICustomer
”cust:{new(): c;}
表示“cust
是一个可以使用new cust()
调用的函数,它将返回c
类型的对象”function CreateCustomer/*...*/(/*...*/): c
表示“函数CreateCustomer
返回c
类型的对象”可以这样调用该函数:
var john:Customer = CreateCustomer(Customer, "John", 35)
其中Customer
是扩展ICustomer
接口的类。