2015-02-28 2 views
2

Я использую существующую js-библиотеку, которая использует модули AMD в моем машинописном коде. Я хочу использовать класс Javascript в качестве базы для моего класса TypScript. Это то, что я пытаюсь сделать:Typcript, требуется модуль как класс

famous.js

define('famous/core/View',['require','exports','module'],function(require, exports, module) { 

    function View() { 
     ... 
    } 

    ... 

    module.exports = View; 
}); 

View.d.ts

модуль объявим "известный/ядро ​​/ View" {

}

AppView.ts

import View = require ('famous/core/View');

класс APPVIEW расширяет вид {

}

экспорт = APPVIEW;

Но в нем говорится: «Невозможно найти имя« Просмотр ». Я полагаю, это логично, что это не сработает, поскольку модуль не является классом, но я не знаю другого пути.

ответ

1

Вам необходимо определить класс и использовать export = в View.d.ts. Например:

declare module "famous/core/View" { 
    class View { 
     // TODO define members of View 
    } 
    export = View; 
} 
+0

Удивительно, что работает. Я ожидал, что когда я объявлю класс в модуле, мне нужно будет его использовать следующим образом: import View = require ('famous/core/View'); var view = new View.View(); , Но он не делает, он отлично работает, спасибо! – Jesse

0

При дальнейшем анализе кажется, что это всего лишь проблема с конфигурацией. Он не должен иметь ничего общего с class против module. Вы уверены, что ваши пути верны, и у вас есть файл конфигурации config.ts?

+0

Код js является частью библиотеки, которую я использую. Это вне моего контроля – Jesse

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