簡體   English   中英

如何在 go 中使用 typescript

[英]How to use typescript in go

我正在嘗試創建一個使用 golang REST API 服務器的 Angular 應用程序。 有一些業務邏輯是用 typescript 編寫的,用於前端。 其中一些需要在后端使用。 為了避免在 golang 中編寫相同的邏輯,我想知道是否可以在 golang 中運行 typescript 代碼? 我發現 SWIG 在 golang 中運行 C++ 代碼,但我沒有找到 typescript 的任何內容。 我知道我可以使用 webassembly 或其他工具在 Angular 中運行 golang 代碼,但我不允許在 golang 中編寫這些代碼。

您可以在AssemblyScript中編寫重復的邏輯,這是 TypeScript 的嚴格子集,將其編譯為 WebAssembly,然后在 Go 中使用Wasmer之類的運行時運行它。

請記住,盡管 AssemblyScript 仍在開發中。

您可以使用MetaCall ,這是一個提供跨語言外語 function 接口的庫,我多年來一直在研究它。 基本上,它允許您在不使用 WebAssembly 的情況下從 Go 調用 TypeScript 函數。 調用在同一過程中完成,因此您仍然可以獲得良好的性能並使用標准 TypeScript 而不是語言的子集。

TypeScript 支持仍在開發中,但您可以在此處查看從 Go 調用 TypeScript 函數的工作示例。

使用這種方法,您可能可以使用 TypeScript 邏輯作為庫創建一個公共存儲庫或 npm package,然后同時將其導入前端和后端。

您可以按照此說明安裝 MetaCall。 安裝完成后,您可以使用以下命令將 npm package 導入 Go 項目中:

metacall npm install your-package

或者將其與 git 作為子模塊一起添加。

稍后您可以像示例中那樣導入 TypeScript 庫。 您不需要轉譯它,MetaCall 會處理它。 請記住在您的 Go 代碼中導入 MetaCall並運行go mod tidy

提醒一下,該示例手動編譯 MetaCall,安裝腳本下載預構建版本。

暫無
暫無

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

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