7
我想創建一個輔助函數,以添加currying,爲類生成常見設置。例如:如何在TypeScript中匿名類
class Person {
private name: string;
private sex: string;
constructor (name: string, sex: string) {
this.name = name;
this.sex = sex;
}
}
var newPersonSex = function (sex: string) {
return function (name: string) {
return new Person(name, sex);
}
}
var MalePerson = newPersonSex('male');
var FemalePerson = newPersonSex('female');
所以,現在創建MalePerson和FemalePerson對象時,它實際上只是返回的人的一個新實例來代替。
var m = new MalePerson('john');
爲了使類型系統允許我仍然使用'新',MalePerson需要是一個構造類型。例如:'new(name:string)=> Person'。這也需要是函數的返回類型。
但是,添加這些聲明後,我無法從'newPersonSex'中返回函數。例如,這是無效的:
var newPersonSex = function (sex: string) : new(name:string) => Person {
return function (name: string) {
return new Person(name, sex);
}
}
如何創建和動態返回一個新的構造函數或類?