Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将Snap.svg插件(Snap.svg.zpd)与typescript和Webpack4一起使用 大家好。_Javascript_Typescript_Svg_Webpack_Snap.svg - Fatal编程技术网

Javascript 如何将Snap.svg插件(Snap.svg.zpd)与typescript和Webpack4一起使用 大家好。

Javascript 如何将Snap.svg插件(Snap.svg.zpd)与typescript和Webpack4一起使用 大家好。,javascript,typescript,svg,webpack,snap.svg,Javascript,Typescript,Svg,Webpack,Snap.svg,我正在启动一个新项目(web应用程序),希望要求我使用该库以及来自的插件(Snap.svg的缩放/平移/拖动插件)。 因此,我使用as捆绑解决方案作为主要编码语言(这两种解决方案我都不熟悉)。 我使用Snap.svg的修改版本成功地将Snap.svg包含在这个环境中:(由于在使用官方Snap.svg和网页包时遇到了一些问题(请参阅更多))(只需将PathToNodeModules/@types/snapsvg下的文件夹重命名为“snapsvg cjs”就可以了) 现在我遇到了另一个问题,将zpd

我正在启动一个新项目(web应用程序),希望要求我使用该库以及来自的插件(Snap.svg的缩放/平移/拖动插件)。
因此,我使用as捆绑解决方案作为主要编码语言(这两种解决方案我都不熟悉)。
我使用Snap.svg的修改版本成功地将Snap.svg包含在这个环境中:(由于在使用官方Snap.svg和网页包时遇到了一些问题(请参阅更多))(只需将PathToNodeModules/@types/snapsvg下的文件夹重命名为“snapsvg cjs”就可以了)

现在我遇到了另一个问题,将zpd插件包括在项目中(Typescript) 这个问题似乎是由于缺少该插件的类型定义造成的,所以有谁能帮助我编写这些类型,或者提供一个解决方案,在Typescript项目中包含snap.svg插件而不编写类型

import * as Snap from "snapsvg-cjs";
import  {Paper} from "snapsvg-cjs";
//TODO : include the zpd plugin

let p:Paper;
p= Snap("snap") 
p.circle(100,100,50)



谢谢大家。

对于面临相同问题的任何人,您只需要为这些插件创建自己的“类型定义”。 我是这样做的:

import * as Snap from 'snapsvg-cjs';
//or  import * as Snap from 'snap.svg'; 
//if you are using the official version of snap.svg

declare module  'snapsvg-cjs' {
   interface  Paper{

       zpd (options?:any, callbackFunc?:(nan:null,zpdelement:any)=>void):void
       zoomTo(zoom:number, interval?:number, ease?:(num:number)=>number, callbackFunction?:(nan:null,zpdelement:any)=>void):void;
       panTo(x:string|number, y:string|number, interval?: number, ease?:(num:number)=>number, cb?:(nan:null,zpdelement:any)=>void):void;
       rotate(a:number,x?:number, y?:number, interval?: number, ease?:(num:number)=>number, cb?:(nan:null,zpdelement:any)=>void):void;
   }
}