2017-01-10 26 views
2

所以我得到這個錯誤:Typescript,刪除錯誤錯誤:(54,33)TS2686:'fabric'是指UMD全局,但當前文件是一個模塊。考慮增加進口,而不是

import {Canvas} from "fabric"; 

Error:(54, 33) TS2686:'fabric' refers to a UMD global, but the current file is a module. Consider adding an import instead.

我與打字稿角項目中使用的織物。 它通過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

如果你像在你的問題中提到的那樣導入(在引用'fabric'的每個文件中),你都不應該得到那個錯誤。錯誤來自同一個文件還是來自不同的文件?你也可以把'fabric'標記爲全球,避免進口,因爲它是全球性的。這[答案可能有幫助](http://stackoverflow.com/questions/40664298/angular-1-x-with-typescript-2-x-types-and-systemjs-using-global-typings/42035067#42035067)? – PSL

回答

1

我不知道這是否回答你的問題,但我認爲它可以幫助你解決你的問題。不幸的是,我仍然沒有把它寫成評論的聲望,所以這裏是一個「答案」。

本週我處理了同樣的錯誤。儘管我使用了React。在我的情況下,問題是TSLink建議我從我的文件中刪除未使用的導入,並且在一種情況下導入是React本身。所以,即使不需要React,我在該文件中使用的ReactDOM也隱含地要求它。因此,當我使用ReactDOM屬性時,它們拋出與您的情況相同的錯誤,只是在我的情況下它是「React」而不是「Fabric」。

我也使用這些模塊的類型。

問候

0

嘗試在該文件的頂部添加

import * as fabric from "fabric"; 

,並引用Canvasfabric.Canvas

const canvas = document.getElementById("test_canvas") as HTMLCanvasElement; 
const fabricCanvas = new fabric.Canvas(canvas); 

此外,使用

// ReSharper disable once WrongRequireRelativePath 

如果resharper抱怨路徑。

相關問題