路径引用在Angular2中不起作用

时间:2017-03-21 10:52:15

标签: angular typescript

我正在尝试将.js库导入到我的角度项目中。 当我在index.html内设置时:

<script src="external.js"></script>

并在我的组件内: 声明var外部:任何;

我可以致电External.myFunc(),一切顺利。 但是,我想在我的组件中导入这个库,而不是在index.html中,为了这样做,我使用路径引用:

/// <reference path="./external.d.ts" />

在external.d.ts中,我导入external.js:

import './external.js';

但我一直得到“外部未定义......”

为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

您将类型声明与其实现和/或它们所代表的库混淆。另外,永远不要使用

/// <reference path="..." />
你几乎不需要它。此外,.d.ts文件的引用路径不会导致JavaScript模块依次导入以在运行时加载,因为它甚至在运行时都不可用,因为它是.d.ts,这只是声明。

您想要的是做以下

  1. 立即删除

    <script src="external.js"></script>
    
  2. 立即删除

    /// <reference path="./external.d.ts" />
    

    将其替换为

    // make sure it is in the right location and adjust path if needed.
    import './external';
    
  3. 你几乎肯定也需要删除它!

    declare var External: any;