簡體   English   中英

如何使用進口 typescript package

[英]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 個編譯系統,每個都有自己的路徑解析:

  • TypeScript 編譯,它使用tsconfig.json中的標志,但編譯路徑而不更改其 output 中的路徑
  • 你的項目編譯(捆綁,消費,甚至是新的 TypeScript 編譯),它使用自己的配置(可能是它自己的tsconfig.json又是 TS 的情況)

如文檔中所述, tsconfig.json中的 TS 標志應該反映最終編譯中所做的事情。

但是,如果您在模塊tsconfig.json中配置了一些路徑別名,而消費項目中沒有相應的對應項,后者將無法正確解析這些路徑。

作為一般規則,避免庫/模塊中的絕對路徑(必須由其他項目編譯和使用),除非它們引用您知道將位於node_modules文件夾中的包(並通過它們的 package 名稱引用它們,不要嘗試深奧的別名)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM