我的项目中有以下代码:
1 declare const fabric: any;
2 class XCanvas {
3 public canvas: fabric.Canvas;
4
5 constructor() {
6 this.canvas = new fabric.Canvas();
7 }
8 }
我正在使用精彩的fabricjs库,但我使用的是最新版本,而@types库已经过时了几个版本。我很难在打字稿中使用它,因为它总是会出错,但这是我得到的最接近的。
所以,第6行编译得很好,没问题。但是第3行给了我这个错误:
Cannot find namespace 'fabric'.
为什么会这样?如何在没有打字的项目中使用它?
我没有导入或要求它,因为我使用脚本标记将其包含在HTML中。
答案 0 :(得分:2)
您正在尝试使用您声明为any
的内容的成员作为类型信息,但这并不常用。如果fabric
为any
,则您无法将fabric.canvas
用作类型注释。工作代码:
declare const fabric: any;
class XCanvas {
public canvas: any; // <--
constructor() {
this.canvas = new fabric.Canvas();
}
}