[英]How to use imports in typescript package
我在 typescript package 中導入有問題。
我在模型目錄中有 class A
和 class B
所以我將 B 導入 A
import B from "models/B"
interface A {
b: B
}
export default A;
但是在構建Adts
之后看不到B
界面。
我試圖在package.json
內設置exports
,但它仍然無法正常工作。
如何將界面導入界面。 我需要在安裝后直接使用這些接口,例如:
import A from "@space/my-package/models/A"
您很可能在tsconfig.json
中有一些paths
別名,用於將絕對路徑models/B
轉換為系統上的實際路徑。
如 TS 文檔中關於模塊和路徑解析中所述:(強調我的)
TypeScript 編譯器有一組額外的標志,用於通知編譯器預期發生在源上的轉換,以生成最終的 output。
重要的是要注意編譯器不會執行任何這些轉換; 它只是使用這些信息來指導將模塊導入解析為其定義文件的過程。
所以這就像有 2 個編譯系統,每個都有自己的路徑解析:
tsconfig.json
中的標志,但編譯路徑而不更改其 output 中的路徑tsconfig.json
又是 TS 的情況) 如文檔中所述, tsconfig.json
中的 TS 標志應該反映最終編譯中所做的事情。
但是,如果您在模塊tsconfig.json
中配置了一些路徑別名,而消費項目中沒有相應的對應項,后者將無法正確解析這些路徑。
作為一般規則,避免庫/模塊中的絕對路徑(必須由其他項目編譯和使用),除非它們引用您知道將位於node_modules
文件夾中的包(並通過它們的 package 名稱引用它們,不要嘗試深奧的別名)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.