There is no easy way to do exactly what you want.
There is an alternative though which might fit your need.
Rather than creating a class you create an interface with all members optional.
export interface IOptions {
valueField?: string;
labelField?: string;
searchFields?: string[];
...
}
Then the instantiation can be done from a simple object literal.
var options : IOptions = {
valueField: "aa",
labelField: "bb"
};
It also works in methods:
var x = new class1({ valueField:"AA"});
class class1 {
valueField: string;
labelField: string;
constructor(options: IOptions){
this.valueField = options.valueField || "empty";
this.labelField = options.labelField || "empty";
}
}