Я пытаюсь создать простое приложение маршрутизации, используя sammyjs, написанный на Typescript, и systemjs в качестве загрузчика модулей.
Однако столкнулся с проблемами с загрузкой sammy.
Ниже приведены фрагменты кода
Конфигурация SystemJs
System.config({
transpiler: "typescript",
defaultJSExtensions: true,
map: {
"knockout": "../bower_components/knockout/dist/knockout",
"sammy": "../bower_components/sammy/lib/sammy",
"jquery": "../bower_components/jquery/dist/jquery"
}
});
Поставщик маршрутов
import { Route } from "./types";
import * as Sammy from "sammy"
export class RouteProvider {
sammyApp: Sammy.Application;
defaultRoute: string;
constructor() {
}
configureRoutes = (routes: Array<Route>) => {
this.sammyApp = Sammy(() => {
routes.map((_route: Route) => {
this.sammyApp.get('#' + _route.path, (context) => {
_route.callBack(context);
});
})
});
this.sammyApp.run('#' + this.defaultRoute);
}
}
Когда я инициализирую класс RouteProvider и вызываю метод configureRoutes, я получаю следующую ошибку:
Uncaught TypeError: Сэмми не является функцией
Я проверил вкладку сети в браузере, и sammy.js был загружен. Также я получаю правильные определения типов, и нет ошибки компиляции Typescript.