2015-08-11 2 views
1

Этот код, чтобы использовать таблицы JQuery данных в машинописном работает отлично:Как определить интерфейс в экспортированном классе TypScript?

interface JQuery 
{ 
    dataTable: any; 
} 

class Grid extends Widget 
{ 
    public data: any; 

    public someMethod() 
    { 
     //apply datatables to the grid element 
     $('#someId').dataTable(this.data); 
    } 
} 

Но теперь мне нужно export класс сетки для использования в другом модуле. Когда я пытаюсь это, однако, я получаю эту ошибку:

Error 146 Property 'dataTable' does not exist on type 'JQuery'. 

Как я могу сохранить свой интерфейс для JQuery, чтобы иметь возможность использовать метод datatable, но быть в состоянии экспортировать класс?

ответ

0

Когда вы объявляете интерфейс во внешнем модуле, он становится новым интерфейсом, который не сливается с внутренним интерфейсом. Поэтому вам нужно просто переместить объявление интерфейса, чтобы отделить файл .d.ts.

+0

Является ли модуль автоматически внешним после экспорта класса? Этот интерфейс * вне * экспортируемого класса. –

+0

Если файл определяет внешний модуль, интерфейс из этого файла становится невидимым извне. Так что он новый и не слитый. Это похоже на то, что вы объявляете интерфейс JQuery2. – Artem

Смежные вопросы