В поваренной книге Angular do c для динамических c форм этот базовый класс для вопроса (один из их элементов формы) рекомендуется:
export class QuestionBase<T> {
value: T;
key: string;
label: string;
required: boolean;
order: number;
controlType: string;
type: string;
options: {key: string, value: string}[];
constructor(options: {
value?: T,
key?: string,
label?: string,
required?: boolean,
order?: number,
controlType?: string,
type?: string
} = {}) {
this.value = options.value;
this.key = options.key || '';
this.label = options.label || '';
this.required = !!options.required;
this.order = options.order === undefined ? 1 : options.order;
this.controlType = options.controlType || '';
this.type = options.type || '';
}
}
И когда он используется, часть данных типа передается в
export class TextboxQuestion extends QuestionBase<string> {/* input-type specific code */}
^^^^^^
export class DropdownQuestion extends QuestionBase<string> {/* input-type specific code */}
^^^^^^
Я не понимаю, почему вы передаете этот тип классу QuestionBase
. В общем, почему полезно передавать тип в такой класс? И в этом конкретном примере c, зачем передавать тип необязательного свойства (не уверен, что это важно, это необязательно), и, кроме того, для входных данных HTML все они возвращают строки, насколько я знаю, так что это цель?