首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用角8访问JavaScript内容(或扩展其他JS的JavaScript文件)

如何使用角8访问JavaScript内容(或扩展其他JS的JavaScript文件)
EN

Stack Overflow用户
提问于 2019-09-12 11:50:54
回答 2查看 268关注 0票数 3

我正在使用JavaScript库OpenSeadragon在一个角8应用程序。因此,常见的方法是在angular.json scripts部分注册angular.json文件,并以以下方式在TypeScript中使用该文件:

代码语言:javascript
复制
declare var OpenSeadragon: any;

然后,我可以在我的OpenSeadragon组件中使用如下所示的TypeScript:

代码语言:javascript
复制
const test: any = OpenSeadragon({});  

所以,这是可行的。

对于这个库,有几个插件/扩展。我需要使用这些插件中的一些。它们依赖于导入主/核心库。因此,我也将插件的js文件添加到angular.json scripts部分。

代码语言:javascript
复制
"scripts": [
  "./node_modules/openseadragon/build/openseadragon/openseadragon.min.js",       
  "./node_modules/openseadragonselection/dist/openseadragonselection.js"
]

这些插件的结构是通过以下方式扩展核心功能:

代码语言:javascript
复制
    $.Viewer.prototype.selection = function(options) {
        if (!this.selectionInstance || options) {
            options = options || {};
            options.viewer = this;
            this.selectionInstance = new $.Selection(options);
        }
        return this.selectionInstance;
    };  

对于主库中的一个selection({withOptions})查看器对象/实例,他们引入了一个名为的新方法

问题是如何访问角TypeScript组件中的新方法?目前,我正在得到方法选择不存在的错误。

EN

回答 2

Stack Overflow用户

发布于 2019-09-12 12:03:25

您可以尝试更改声明中的any值并添加特定类型,或者添加如下内容:

代码语言:javascript
复制
declare global {
  interface OpenSeadragon {
    selection: (options:any) => any;
  }
}
票数 0
EN

Stack Overflow用户

发布于 2019-11-22 06:09:58

移除./从路径

路径应该类似于这个

"node_modules/openseadragon/build/openseadragon/openseadragon.min.js","node_modules/openseadragon-annotations/dist/openseadragon-annotations.js",

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57906127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档