[筆記] import type 和 import 的差異 TypeScript

在開發 TypeScript 專案時,有時會遇到錯誤訊息 Uncaught SyntaxError: The requested module ‘xxx’ does not provide an export named ‘xxx’。若你確實有導出(export)所需的內容,但仍出現錯誤,有可能是因你匯入的項目是 interface 或 type 這類僅在編譯階段(compile time)有用但執行階段(runtime) 並不會存在。

typescript


內容

匯入具體值(如 enum)

當你使用 import 匯入如 enum 類在執行階段仍存在的實體時,TypeScript 編譯器會正確地解析它並在執行階段提供對應的值,可用一般 import 沒問題。


匯入型別(type / interface)

相反地,若你匯入的是 type 或 interface,這些內容在執行時並不會出現在 JavaScript 中。建議使用 import type 來明確表示這是純型別的匯入


參考資料

1. Uncaught SyntaxError: The requested module ‘/src/api/**‘ does not provide an export named ‘**‘

按讚加入粉絲團