无法使用Angular 2导入toastr模块

gyo*_*hum 3 typescript toastr tsd angular

我正在创建一个版本为2.0.0-alpha.46的Angular 2应用程序,我尝试导入toastr模块.

我已经下载了库,并且还下载了明确键入的文件.

在我的html页面中,我<script>为.js文件添加了一个标记:

<script src="./src/libs/toastr/toastr.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

在Visual Studio Code中,我尝试导入模块,如下所示:

import * as toastr from 'toastr';
Run Code Online (Sandbox Code Playgroud)

然后我可以在我的组件中调用toastr.info('message') - 我甚至可以获得intellisense; 但是,当我实际尝试加载网页时,我得到404/src/toastr not found错误.

如果我试图明确找到toastr明确键入的文件:

import * as toastr from '../../definitions/toastr/toastr';
Run Code Online (Sandbox Code Playgroud)

我会得到"[ts模块的完整路径]不是一个模块."

我也尝试添加///<reference path="../../toastr.d.ts" />到我用来导入模块的文件的顶部无济于事.

有没有人知道可能会发生什么?我对我可能出错的事情画了一个空白.提前致谢.

Thi*_*ier 10

我认为该toastr.min.js文件根本不包含模块.我的理解是TypeScript定义文件可以帮助您定义toastr库使用的方法和结构.这在IDE中有助于代码完成.这个定义文件实际上并没有创建一个可以在运行时使用的模块......

这意味着您可以直接使用toastr对象,而无需像下面这样导入它:import * as toastr from '...';.

这是相应的plunkr:https://plnkr.co/edit/wzdoisKBrZYTeSX8r7Nd ? p = preview .

希望有道理.蒂埃里