только "усилить" тип, делая из него, ранее опционального, ныне обязательным
                  
                  
                  
                  
                  
                  чтобы сделать то что вам хочется, можете попробовать вот так:
                  
                  
                  
                  
                  
                  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 и много не покрытых методов, поэтому в данном случае не могу пологаться на авторов пакета
Обсуждают сегодня