首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSPM + TypeScript + PhotoSwipe :如何成功导入和使用库?

JSPM + TypeScript + PhotoSwipe :如何成功导入和使用库?
EN

Stack Overflow用户
提问于 2016-03-22 18:32:18
回答 3查看 1.1K关注 0票数 3

我试图在我的JSPM和TypeScript项目中使用PhotoSwipe库,但没有成功(我在这里流血。))。

使用来自PhotoSwipe的DefinitelyTyped修改后的版本定义文件(最初的“未定义的PhotoSwipe”没有工作),我得出了如下结论:

代码语言:javascript
复制
declare var PhotoSwipe: PhotoSwipe.IPhotoSwipeStatic;
declare var PhotoSwipeUI_Default: PhotoSwipeUI_Default.IPhotoSwipeUI_DefaultStatic;

declare module PhotoSwipe {
    ...
    interface IPhotoSwipeStatic {

        new <T extends Options> (pswpElement: HTMLElement,
            uiConstructor: (new (pswp: PhotoSwipeInstance<T>, framework: UIFramework) => UI<T>) | boolean,
            items: PhotoSwipe.Item[],
            options: T): PhotoSwipeInstance<T>;
    }
}

declare class PhotoSwipeInstance<T extends PhotoSwipe.Options> {
    ...
}


declare module PhotoSwipeUI_Default {
    ...
    interface IPhotoSwipeUI_DefaultStatic {

        new (pswp: PhotoSwipeInstance<Options>, framework: PhotoSwipe.UIFramework): PhotoSwipeUI_DefaultInstance;
    }
}

declare class PhotoSwipeUI_DefaultInstance implements PhotoSwipe.UI<PhotoSwipeUI_Default.Options> {
    ...
}

试图导入它时,我似乎无法理解如何使用以下方法创建PhotoSwipe实例:

const photoSwipe = new PhotoSwipe(pswpElement, PhotoSwipe.PhotoSwipeUI, items, options);

1)

代码语言:javascript
复制
declare module "photoswipe" {
    export = { PhotoSwipe, PhotoSwipeUI_Default };
}

import "photoswipe"; => I get ReferenceError: PhotoSwipe是未定义的

2)

代码语言:javascript
复制
declare module "photoswipe" {

    export var PhotoSwipe: PhotoSwipe.IPhotoSwipeStatic;
    export var PhotoSwipeUI_Default: PhotoSwipeUI_Default.IPhotoSwipeUI_DefaultStatic;
}

import { PhotoSwipe, PhotoSwipeUI_Default } from "photoswipe"; => I get TypeError: photoswipe_1.PhotoSwipe不是构造函数

有人吗?

EN

回答 3

Stack Overflow用户

发布于 2017-06-24 20:22:04

我知道可能很晚了,但有个解决办法:

代码语言:javascript
复制
require([ 
        'path/to/photoswipe.js', 
        'path/to/photoswipe-ui-default.js' 
    ], function( PhotoSwipe, PhotoSwipeUI_Default ) {

    //      var gallery = new PhotoSwipe( someElement, PhotoSwipeUI_Default ...
    //      gallery.init() 
    //      ...

});

源- http://photoswipe.com/documentation/getting-started.html

另外,请不要忘记在导入之前导入一些文件:

代码语言:javascript
复制
import 'photoswipe/dist/photoswipe.css';
import 'photoswipe/dist/default-skin/default-skin.css';

我试着用TypeScript的方式来处理全局类型,并且简单地说:

代码语言:javascript
复制
import { PhotoSwipe, PhotoSwipeUI_Default } from 'photoswipe';

但没起作用。我和你犯了同样的错误。

祝好运!

是的,我和webpack一起测试过,但没有用JSPM。

票数 0
EN

Stack Overflow用户

发布于 2017-10-31 06:24:41

代码语言:javascript
复制
npm install photoswipe
npm install --save @types/photoswipe

安装光擦拭和它的类型定义从npm。

代码语言:javascript
复制
import photoSwipe from 'photoswipe'

然后可以使用上面的import语句使用它。

希望这能帮上忙。

票数 0
EN

Stack Overflow用户

发布于 2021-10-22 16:55:10

安装设备:

代码语言:javascript
复制
npm i photoswipe
npm i -D @types/photoswipe

用它来搭配:

代码语言:javascript
复制
import PhotoSwipe from 'photoswipe'
import PhotoSwipeUI_Default from 'photoswipe/dist/photoswipe-ui-default'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36162447

复制
相关文章

相似问题

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