我正在尝试将.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';
但我一直得到“外部未定义......”
为什么这不起作用?
答案 0 :(得分:0)
您将类型声明与其实现和/或它们所代表的库混淆。另外,永远不要使用
/// <reference path="..." />
你几乎不需要它。此外,.d.ts文件的引用路径不会导致JavaScript模块依次导入以在运行时加载,因为它甚至在运行时都不可用,因为它是.d.ts
,这只是声明。
您想要的是做以下
立即删除
<script src="external.js"></script>
立即删除
/// <reference path="./external.d.ts" />
将其替换为
// make sure it is in the right location and adjust path if needed.
import './external';
你几乎肯定也需要删除它!
declare var External: any;