[英]Include custom Typings in index.d.ts npm module
我目前正在為mongoose寫一個插件。 現在,當我使用 TypeScript 時,我遇到了以下情況。 我必須擴展現有的界面。 這沒問題。 盡管如此,為了完整起見,我還是會把它寫下來
src/打字/mongoose.d.ts
declare module 'mongoose' {
export interface SomeExistingMongooseInterface {
MyNewOption?: FancyOptionInterface
}
}
將通過聲明合並擴展現有接口
我在我的 tsconfig 中包含了 typeRoot
tsconfig.json
"compilerOptions" : {
...
"typeRoots": {
"src/types",
"node_modules/@types"
}
}
在構建我的 npm 模塊時,我也使用 --declare 標志來導出類型。 現在的問題是,找不到自定義類型。 當然我可以手動將它的內容添加到我的。 /dist/index.d.ts可以工作,但這不是一個真正的選擇,因為它不能自動化並且會留下很多錯誤空間。
是否有任何最佳實踐以與 typescript 編譯器或至少 npm 模塊一起使用的方式來執行此操作?
好的。 我終於讓它工作了。 這是我為實現所做的
npm 模塊中第三方 npm 模塊的自定義類型
無需編寫 .d.ts 文件,只需切換到常規 .ts 文件即可。 所以就我而言
源代碼/類型/貓鼬.ts
declare module 'mongoose' {
export interface SomeExistingMongooseInterface {
MyNewOption?: FancyOptionInterface
}
}
第二步是在您的應用程序中導入此文件。 我只是發現將它添加到根文件中很方便
源代碼/索引.ts
import "./types/mongoose"
這已經是了。 沒什么可做的。 當構建應用程序的打字稿編譯器現在將在dist / src目錄/類型generade一個mongoose.d.ts文件夾,將在之后公布。
一切正常,如果您選擇將其發布到 npm,您的用戶也將受益於第三方界面的擴展。
您也可以在主根文件之一中執行此操作-
/// <reference path="./path/to/your/src/typings/mongoose.d.ts" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.