簡體   English   中英

Kotlin JavaScript 到 TypeScript 定義文件

[英]Kotlin JavaScript to TypeScript Definition File

我找到了ts2kt 庫,它可以從任意.d.ts文件創建 Kotlin 頭文件。 但是,我想朝相反的方向走。

我想構建一個可以編譯為 JavaScript 的 Kotlin 庫,但我想從 TypeScript 中使用它。 有沒有辦法讓 Kotlin 從其公開的接口生成.d.ts文件? 我是否以正確的方式接近這個?

在 Kotlin 1.4-M1 中添加了對導出 TypeScript 定義的支持:

預覽:TypeScript 定義我們很高興展示的新 Kotlin/JS IR 編譯器的另一個功能是從 Kotlin 代碼生成 TypeScript 定義。 在處理混合應用程序時,JavaScript 工具和 IDE 可以使用這些定義來提供自動補全、支持靜態分析器,並使在 JS 和 TS 項目中更容易地包含 Kotlin 代碼。 對於配置為使用produceExecutable() 的項目中標有@JsExport(見上文)的頂級聲明,將生成帶有TypeScript 定義的.d.ts 文件。 對於上面的代碼片段,它們看起來像這樣:

 // [...] namespace blogpost { class KotlinGreeter { constructor(who: string) greet(): string } function farewell(who: string): string } // [...] In Kotlin 1.4-M1, these declarations can be found in build/js/packages/<package_name>/kotlin alongside the corresponding,

未打包的 JavaScript 代碼。 請注意,由於這只是一個預覽,它們​​暫時不會默認添加到發行版文件夾中。 您可以預期這種行為在未來會發生變化。

來源:

https://blog.jetbrains.com/kotlin/2020/03/kotlin-1-4-m1-released/

我希望做這樣的事情來在 Android 和 JS 之間共享模型。 ts-generator庫,它接受 jvm 類並從中生成 ts 定義。

我還沒有嘗試過,但理論上應該可以。 將您的庫(或 api 實現的接口)的 API 分離到kotlin 公共模塊中 然后就可以將api編譯成jvm模塊,通過ts-generator運行,生成ts定義。

也許有一種聰明的方法可以跳過編譯到 jvm 以生成 ts 定義。

暫無
暫無

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

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