string;
                  
                  
                    three: string;
                  
                  
                    /* etc ... */
                  
                  
                  }
                  
                  
                  
                  
                  
                  class Something implements ISomething {
                  
                  
                    one: string;
                  
                  
                    two: string;
                  
                  
                    three: string;
                  
                  
                    /* etc ... */
                  
                  
                    /* как здесь не перечислять снова все свойства? */
                  
                  
                    
                  
                  
                    constructor(data: ISomething) {
                  
                  
                      Object.assign(this, data);
                  
                  
                    }
                  
                  
                  }
                  
                  
                  
                  
                  
                  когда создаёшь класс, который исполняет интерфейс, то приходится перечислять заново все свойства интерфейса, иначе тайпскрипт ругается
                  
                  
                
ну это правильное поведение
А как вы хотели, если класс имплементирует интерфейс, то он обязан соблюдать контракт, описанный в интерфейсе
базовый класс сделать не вариант?
Обсуждают сегодня