TypeScript extract publi c интерфейс класса - PullRequest
0 голосов
/ 06 августа 2020

Существует ли сопоставленный тип, позволяющий извлекать c свойства и методы publi * класса машинописного текста в интерфейс? Это будет выглядеть так:

class Foo {
  private x: number;
  public y: number;
  
  bar(a: number) {}
  
  private baz() {}
}

type FooPublic = PublicInterface<Foo>;

В этом примере FooPublic будет иметь свойство y и метод bar(), но не будет иметь private x или private baz().

Ближайшее, что я пришел, это:

type PublicInterface<T> = {[K in keyof T]: T[K]};

Однако, похоже, это не соответствует правильному вводу методов. Я не получу ошибки, если скажу:

const example: PublicInterface<Foo> = {
  y: 5,
  bar() {}  // Incorrect - should require an integer argument!
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...