Javascript 如何将Snap.svg插件(Snap.svg.zpd)与typescript和Webpack4一起使用 大家好。
我正在启动一个新项目(web应用程序),希望要求我使用该库以及来自的插件(Snap.svg的缩放/平移/拖动插件)。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
因此,我使用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;
}
}