所以我收到了这个错误:
import {Canvas} from "fabric";
错误:(54,33)TS2686:' fabric'指的是UMD全球,但目前 文件是一个模块。请考虑添加导入。
我在使用TypeScript的Angular项目中使用fabric。 它通过angular-cli手动导入到项目中。
"scripts": [
"../node_modules/jquery/dist/jquery.min.js",
"./libs/jquery.base64.js",
"./store/signage_sdk.js",
"../node_modules/fabric/dist/fabric.js",
我也在使用@types/fabric
我怎么能安静这个错误?
TX
肖恩
答案 0 :(得分:1)
我不确定这是否能解答您的问题,但我认为它可以帮助您解决问题。不幸的是,我仍然没有把它写成评论的声誉,所以这是一个“答案”。
本周我处理了同样的错误。我虽然使用React。在我的情况下,问题是TSLink建议我从我的文件中删除未使用的导入,在一种情况下导入是React本身。因此,即使不需要React,我在该文件中使用的ReactDOM也隐含地想要它。
因此,当我使用ReactDOM属性时,它们会抛出与您的情况相同的错误,仅在我的情况下它是“React”而不是“Fabric”。
我也使用这些模块的类型。
此致
答案 1 :(得分:0)
尝试添加
import * as fabric from "fabric";
位于文件顶部,引用Canvas
为fabric.Canvas
:
const canvas = document.getElementById("test_canvas") as HTMLCanvasElement;
const fabricCanvas = new fabric.Canvas(canvas);
另外,使用
// ReSharper disable once WrongRequireRelativePath
如果Resharper抱怨这条路。
答案 2 :(得分:0)
我认为您应该使用
import { fabric } from 'fabric'
然后使用
new fabric.Canvas()
这应该可以工作,并且可以消除错误。