Существует ли сопоставленный тип, позволяющий извлекать 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!
}