Angular2 RC5导入第三方JS库:摊牌

Angular2 RC5 Importing 3rd Party JS Library: Showdown

本文关键字:摊牌 JS 第三方 RC5 导入 Angular2      更新时间:2023-09-26

我在进口摊牌作为供应商时遇到了麻烦。当我编译时,我在浏览器控制台中得到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';

我不熟悉摊牌,但是如果您想在代码中导入它,您需要有类型定义文件。如果你使用TypeScript 2.0,你可以简单地从npmjs.org安装它。我刚刚检查了—他们在@types组织中有摊牌的类型定义:https://www.npmjs.com/search?q=%40types%2Fshowdown

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

如果你使用的是旧版本的TypeScript,请将声明与Typings一起安装。不要忘记在index.html中为摊牌添加一个脚本标签。

在这个示例应用程序中,我隐式地使用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);