Javascript typescript中的工厂函数语法

Javascript typescript中的工厂函数语法,javascript,typescript,Javascript,Typescript,我不理解这里的c类型标记语法: 函数CreateCustomer(cust:{new():c;}, 姓名:string,年龄:number):c 有人能解释一下上面3个不同位置的c是什么吗?1st c是集合变量必须扩展ICCustomer的声明(在应用程序中,您可以有VIPCustomer、MegaCustomer…) 然后第二个c只是安全保护,c的构造函数是100%扩展ICCustomer(将此对象返回到cust) 最后一个c是整个函数的返回类型 祝你今天愉快 1st c是集合变量必须扩展

我不理解这里的c类型标记语法:

函数CreateCustomer(cust:{new():c;},
姓名:string,年龄:number):c

有人能解释一下上面3个不同位置的c是什么吗?

1st c是集合变量必须扩展ICCustomer的声明(在应用程序中,您可以有VIPCustomer、MegaCustomer…)

然后第二个c只是安全保护,c的构造函数是100%扩展ICCustomer(将此对象返回到cust)

最后一个c是整个函数的返回类型


祝你今天愉快

1st c是集合变量必须扩展ICCustomer的声明(在应用程序中,您可以有VIPCustomer、MegaCustomer…)

然后第二个c只是安全保护,c的构造函数是100%扩展ICCustomer(将此对象返回到cust)

最后一个c是整个函数的返回类型

祝你今天愉快

  • 表示“
    c
    是扩展
    iccustomer
    的一种类型”
  • cust:{new():c;}
    表示“
    cust
    是一个可以用
    new cust()
    调用的函数,它将返回
    c
    类型的对象”
  • function CreateCustomer/*…*/(/*…*/):c
    表示“function
    CreateCustomer
    返回类型为
    c
    的对象”
  • 函数可以这样调用:
    var john:Customer=CreateCustomer(客户,“john”,35)

    其中,
    Customer
    是扩展
    iccustomer
    接口的类

  • 表示“
    c
    是扩展
    iccustomer
    的一种类型”
  • cust:{new():c;}
    表示“
    cust
    是一个可以用
    new cust()
    调用的函数,它将返回
    c
    类型的对象”
  • function CreateCustomer/*…*/(/*…*/):c
    表示“function
    CreateCustomer
    返回类型为
    c
    的对象”
  • 函数可以这样调用:
    var john:Customer=CreateCustomer(客户,“john”,35)

    其中,
    Customer
    是扩展
    iccustomer
    接口的类

    function CreateCustomer<c extends ICustomer>(cust:{new(): c;}, 
                                             name: string, age: number): c