最近在用typescript寫項目時,我用import來加載一個圖片,webpack編譯文件是會報錯如下:
報錯:
解決:
如果在js中引入本地靜態資源圖片時使用import img from './img/bd_logo1.png'這種寫法是沒有問題的,但是在typscript中是無法識別非代碼資源的,所以會報錯TS2307: cannot find module '.png'。因此,我們需要主動的去聲明這個module。新建一個ts聲明文件如:images.d.ts(如下)就可以了。這樣ts就可以識別svg、png、jpg等等圖片類型文件。項目編譯過程中會自動去讀取.d.ts這種類型的文件,所以不需要我們手動地加載他們。當然.d.ts文件也不能隨便放置在項目中,這類文件和ts文件一樣需要被typescript編譯,所以一樣只能放置在tsconfig.json中include屬性所配置的文件夾下。
declare module '*.svg' declare module '*.png' declare module '*.jpg' declare module '*.jpeg' declare module '*.gif' declare module '*.bmp' declare module '*.tiff'