только "усилить" тип, делая из него, ранее опционального, ныне обязательным
чтобы сделать то что вам хочется, можете попробовать вот так:
type MyType = string | number;
interface Document {
_id: any;
key: string;
other_key: boolean;
// Прочие ключи из внешнего интерфейса
}
// Partial делает все ключи из переданного ему интерфейса опциональными
interface IDoc extends Partial<Document> {
// тут уже полность ваш интерфейс и вы можете как переопределять типы этих ключе
// так и выбирать какие ключи сделать обязательными, а какие оставить опциональными
_id?: MyType,
// и так далее
}
только хорошо подумайте, нужно ли вам это, т.к. дальше в приложении вы должны будет сами поддерживать актуальность интерфейсов при обновлениях
да и как бы разрабы пакета не просто ж так описали интерфейсы именно так
Не знал про Partial, спасибо! Да, согласен, что нужно подумать конечно, но по поводу авторов, к сожалению пока @types/mongoose не покрывает монгус полностью, часто юзается any и много не покрытых методов, поэтому в данном случае не могу пологаться на авторов пакета
Обсуждают сегодня