0

我在将Showdown作为供应商导入时遇到问题。当我编译时,我进入showdown is not defined浏览器控制台。由于它是一个供应商包,我认为我不能将它导入到app.module.ts. 我需要为它声明一个自定义类型吗?包都在js。我在 Angular2 RC5 上运行。谢谢!

家庭服务.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);
}

供应商浏览器.ts

import 'showdown/dist/showdown';
4

2 回答 2

5

我不熟悉摊牌,但如果你想在代码中导入它,你需要有类型定义文件。如果你使用 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

于 2016-09-01T14:02:34.493 回答
2

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

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

const converter = new Converter();
var body.title = converter.makeHtml(title);
于 2016-09-01T15:42:26.870 回答