Я использую тип goose, чтобы определить мои модели mongoose / mon go -db. Модель типа goose может выглядеть как
class Something {
@prop({ required: true }) // this is now required in the schema
public firstName!: string;
@prop() // by default, a property is not required
public lastName?: string; // using the "?" marks the property as optional
}
(из https://typegoose.github.io/typegoose/docs/decorators/prop/)
Я хотел бы повторно использовать классы, чтобы получить различные интерфейсы машинописи, например: API звонки.
Как бы я сделал, чтобы обрезать все @prop(...)
-линии и генерировать что-то похожее на
interface Something {
firstName: string,
lastName?: string
}
Полагаю, я хотел бы использовать https://www.typescriptlang.org/docs/handbook/advanced-types.html#mapped - печатает но я не уверен в этом.