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

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

  1. Определите класс, в котором содержатся функции и вложенные классы:
class MyClass {
  public myFunction(): void {
    // логика функции
  }

  public nestedClass: {
    nestedProperty: string;
  } = {
    nestedProperty: 'Значение свойства вложенного класса',
  };
}
  1. Создайте интерфейс, который будет описывать поля класса, не являющиеся функциями:
interface IMyInterface {
  nestedClass: {
    nestedProperty: string;
  };
}
  1. Используйте интерфейс в своем коде:
const myObject: IMyInterface = new MyClass();

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

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