Sobes.tech
Senior

Ierosiniet pareizu manto modeli Button un Input klasēm vietā pašreizējā, kur Input paplašina Button.

sobes.tech AI

Atbilde no AI

Button noņemtais Input nav loģisks, jojo Input un Button ir dažādi elementi ar dažādām semantiskām un uzvedības īpašībām.

Ir pareizi definēt kopēju pamata klasi, piemēram, UIControl vai FormElement, kas satur kopīgas īpašības un metodes visiem formas elementiem. Tad no tās manto Button un Input kā atsevišķas klases.

TypeScript piemērs:

class UIControl {
  constructor(public id: string) {}
  render() {
    // kopēja renderēšanas metode
  }
}

class Button extends UIControl {
  click() {
    // klikšķa loģika
  }
}

class Input extends UIControl {
  value: string = '';
  setValue(val: string) {
    this.value = val;
  }
}

Šis pieejas veids atspoguļo reālo hierarhiju un novērš nepareizas saites starp klasēm.