繁体   English   中英

Angular2 RC5导入第三方JS库:对决

[英]Angular2 RC5 Importing 3rd Party JS Library: 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';

我对Showdown并不熟悉,但是如果您想将其导入代码中,则需要具有类型定义文件。 如果使用TypeScript 2.0,则只需从npmjs.org安装它。 我刚刚检查了-它们在@types组织中具有Showdown的类型定义: https ://www.npmjs.com/search ? q =% 40types%2Fshowdown

只需运行npm i @types/showdown --save-dev

如果使用较旧的TypeScript,请使用Typings安装声明。 不要忘记在index.html中为Showdown添加脚本标签。

在此示例应用程序中,我隐式使用了JQuery,但是虽然不需要导入它:

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

解决方案是使用Yakov Fain提到的类型

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM