Angular2 RC5 Импорт сторонней библиотеки JS: Showdown

У меня проблемы с импортом Showdown в качестве поставщика. Когда я компилирую, я получаю showdown is not defined в консоли браузера. Поскольку это пакет поставщика, я не думаю, что смогу импортировать его из app.module.ts, Нужно ли мне объявлять заказную печать для него? Пакет все в js, Я бегу на Angular2 RC5. Спасибо!

home.service.ts

import 'showdown/dist/showdown';

declare var showdown: any;

private extractData(res: Response) {
   let body      = res.json();
   var converter = new showdown.Converter(),
   originalBody  = window.atob(body.content),
   body.title    = converter.makeHtml(title);
}

vendor.browser.ts

import 'showdown/dist/showdown';

2 ответа

Решение

Решением было использовать наборы, упомянутые Яковом Файном.

import {Converter} from "showdown/dist/showdown";

const converter = new Converter();
var body.title = converter.makeHtml(title);

Я не знаком с Showdown, но если вы хотите импортировать его в код, вам нужны файлы определения типа. Если вы используете TypeScript 2.0, вы можете просто установить его с npmjs.org. Я только что проверил - у них есть определения типов для Showdown в организации @types: https://www.npmjs.com/search?q=%40types%2Fshowdown

Просто беги npm i @types/showdown --save-dev,

Если вы используете более старый TypeScript, установите объявления с помощью Typings. Не забудьте добавить тег сценария для Showdown в ваш index.html.

В этом примере приложения я неявно использую JQuery, но импортировать его не нужно:

https://github.com/Farata/angular2typescript/tree/master/chapter2/auction

Другие вопросы по тегам