1

如果您要編寫自己的開放源代碼打字稿庫,您將如何構造打印稿和打印稿定義?根據我的理解,定義文件確實存在於編譯器中,因此當您的圖書館被使用時,智能感知可以幫助消費者。如何爲新庫編寫打字稿定義文件?

但是,開發庫時定義文件如何在內部工作?你會把所有的類型(接口,類,等等)放在{module} .d.ts文件中,並在內部引用定義文件,這樣你就不必兩次寫入類型(一次在{module}中。 ts和一次在{module} .d.ts中?

在typescript編譯器選項中,將「declaration」設置爲true有什麼意義?對我來說,如果它自動定義文件創建似乎沒有幫助不會是非常有益的(即註釋)。

如果磁帶庫有多個模塊,你會寫每個模塊單獨定義和定義之間添加引用,然後用一些automater將它們連接起來(即一飲而盡,呼嚕聲)?

什麼我推薦的方式來暴露你的圖書館,以便打字稿消費者和JavaScript消費者都可以使用你的圖書館?

你會如何在打字稿中寫測試?你會在測試文件中導入打字稿模塊嗎?

回答

1

當開發資料庫中打字稿你不使用你自己的類的定義。它們是「自包含的」,並且已經向轉譯器/ IDE提供了所有類型的信息。這些定義與您爲外部消費者所提及的一樣。

設置declation到真正的意義在於擺脫收集來自打字稿類的類型信息,並定義文件粘貼的繁瑣工作。正如我所說的,這些信息已經存在於打字稿文件中,並且可以由轉播者自動提取。

關於如何組織你的定義,揭露他們的方式 - 我相信,有多種不同的方式,有一兩件事是肯定的 - 你不想手動編寫同樣的類定義在兩個地方。話雖如此,我可以給你一個我如何曝光圖書館project的樣本,並在another one中使用它。 請注意index.ts文件以及在package.json -> typings字段中如何顯示根文件。在那裏您還可以通過茉莉花找到圖書館的單元測試實例。

希望這會給你如何與圖書館的發展過程中去的一些信息。