Angular 5 - 在全局范围内调用函数

时间:2018-04-13 10:14:33

标签: javascript angular typescript video.js

我想在我使用Angular构建的IonicFramework应用程序中使用video.js。我尝试通过npm安装它,但如果我尝试导入,TypeScript无法识别任何可导入的模块,我找不到有关在TS / ES6应用程序中使用它的正确文档。

我所做的就是尝试像任何js库一样使​​用它。我在我的index.html文件中包含了video.js脚本:

<script src="assets/js/video_v6_6_3.js"></script>

我查看了内部,它的作用是在全局范围内声明一个名为videojs的函数(我不喜欢它 - 但这是它的编写方式)。

在我的应用程序中,我尝试在ngAfterViewInit方法调用上调用此函数,如下所示:videojs(this.videoId);。但TypeScript在运行时抛出异常:

Typescript Error
Cannot find name 'videojs'.

有没有办法包装这些库,以便它们适合Angular导入?或者也许TypeScript接受这种方法而不是抛出错误?我已经搜索过但无法找到有关此类情况的任何信息。

1 个答案:

答案 0 :(得分:0)

要使打字稿停止投诉,您只需将其声明为any

declare const videojs: any;

或者您可以尝试像这样导入它(未经测试):

import * as videojs from 'videojs';