Добавление элементов к интерфейсам, объявленным в модуле

#typescript #bootstrap-datetimepicker

#typescript #bootstrap-datetimepicker

Вопрос:

Я пытаюсь использовать плагин Bootstrap Datetimepicker в моем коде TypeScript. Я загрузил определения .d.ts для плагина, но в настоящее время ни один из них не включает метод Datetimepicker.destroy . Однако он присутствует в плагине, поэтому я хотел бы использовать его с безопасностью типов.

Обычно я бы сделал простой интерфейс (расширение) на моем корневом уровне следующим образом:

 inteface Datetimepicker {
  destroy():void;
}
  

Но в этом случае это не работает, потому что Datetimepicker интерфейс определен в BootstrapV3DatetimePicker модуле в файле d.ts, поэтому такого рода расширение не работает. Я также пробовал этот способ:

 module BootstrapV3DatetimePicker { 
  inteface Datetimepicker {
    destroy():void;
  }
}
  

Но, похоже, это тоже не работает, метод destroy по-прежнему не распознается Visual Studio.

Как добавить новые элементы к существующему интерфейсу, если он определен в модуле во внешнем файле d.ts?

Ответ №1:

Попробуйте :

   declare module BootstrapV3DatetimePicker { 
     export inteface Datetimepicker {
       destroy():void;
    }
 }
  

Обратите внимание на экспорт и объявите

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

1. Спасибо, мне нужно было только ключевое слово export, и оно отлично работает и без объявления. Есть ли у declare предполагаемая роль в вашем ответе?

2. вам это нужно, у функции нет тела… без declare генерируется JavaScript