TypeError:SVG不是函数

时间:2019-02-13 22:18:26

标签: typescript svg.js

我正在将Svg.js导入我的打字稿项目。致电SVG时,出现以下错误。 Uncaught (in promise) TypeError: SVG is not a function

我尝试以不同的方式导入Svg.js,但这似乎不是问题。我也尝试以不同方式调用“ SVG”。 使用Svg.js版本@svgdotjs/svg.js": "^3.0.11

例如:

import * as SVG from "@svgdotjs/svg.js";
const svgjs: any = SVG;
export default svgjs;
    let draw = new SVG.Doc('drawing');
    let rect = draw.rect(100, 100).attr({fill: "#f06"})

上述方法返回Uncaught (in promise) TypeError: SVG.Doc is not a constructor

这是我导入Svg.js的方式。 import * as SVG from '@svgdotjs/svg.js'

这就是我使用“ SVG”的方式。

let draw = SVG('drawing');
let rect = draw.rect(100, 100).attr({fill: "#f06"})


3 个答案:

答案 0 :(得分:0)

这可能取决于您的Babel配置,但是根据我的经验,import * as X创建了一个对象,该对象包装了模块的所有输出。因此,您必须致电:

let draw = SVG.default('drawing');

或者更好,将导入转换为import X

import SVG from "@svgdotjs/svg.js";
...
let draw = SVG('drawing');

答案 1 :(得分:0)

SVG()现在应该可以在3.0.12中正常工作

答案 2 :(得分:0)

import SVG from "@svgdotjs/svg.js/src/svg" //v3.0

let draw = SVG().addTo('#drawing').viewbox(0, 0, 300, 140)
let rect = draw.rect(100, 100).attr({fill: "#f06"})