Typescript. Как создать интерфейс с полями не являющимися функциями из класса с функциями и вложенными классами?

В TypeScript для создания интерфейса с полями, которые не являются функциями, из класса с функциями и вложенными классами, можно использовать следующий подход:

1. Определите класс, в котором содержатся функции и вложенные классы:

class MyClass {
  public myFunction(): void {
    // логика функции
  }

  public nestedClass: {
    nestedProperty: string;
  } = {
    nestedProperty: 'Значение свойства вложенного класса',
  };
}

2. Создайте интерфейс, который будет описывать поля класса, не являющиеся функциями:

interface IMyInterface {
  nestedClass: {
    nestedProperty: string;
  };
}

3. Используйте интерфейс в своем коде:

const myObject: IMyInterface = new MyClass();

console.log(myObject.nestedClass.nestedProperty); // Выведет "Значение свойства вложенного класса"

Таким образом, вы можете создать интерфейс, который описывает только необходимые вам поля класса, не включая функции или другие ненужные свойства.