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