Могу ли я локально исправить неправильные типы импортированной библиотеки в TypeScript?

#typescript

#typescript

Вопрос:

Я использую passport-saml для проверки подлинности SAML. Недавно они внесли изменение, в соответствии с которым MultiSamlStrategy конструктор a должен принимать privateKey свойство вместо privateCert свойства, причем последнее приводит к предупреждению во время выполнения. Чтобы избежать предупреждения, я в настоящее время использую @ts-expect-error , чтобы игнорировать проблему ввода:

 // @ts-expect-error https://github.com/node-saml/passport-saml/pull/497
privateKey: privateKey,
 

Мне не очень нравится этот стиль игнорирования ошибок в моем исходном коде, которые, как я знаю, присутствуют. Есть ли способ определить правильные типы локально и указать TypeScript использовать их вместо этого? Я знаю о существовании слияния объявлений, но мне не удалось создать работающую формулировку. В идеале я бы просто добавил privateKey свойство в SamlConfig интерфейс — мне не нужно удалять какие-либо свойства.

Комментарии:

1. Вы пытались добавить в пространство имен в файле объявления типа?

2. ДА. Я пробовал пространства имен «MultiSamlStrategy» (для класса), «passport-saml», «passport-saml / lib / passport-saml / types», а также глобальные. Ничто из того, что я выбрал, не возымело эффекта. Файл объявления, экспортируемый этим проектом, только экспортирует MultiSamlStrategy , а не пространство имен, содержащее все.

3. не уверен, в чем именно проблема, но вы можете попробовать: импортировать * как ps из ‘passport-saml’; класс MultiSamlStrategy расширяет ps.MultiSamlStrategy { constructor(PrivateKey: PrivateKey) {super(…); …} }, что-то в этом роде?