目前是否有任何在線轉換器可以將 ts 轉換為 js?我想使用這里的組件,但它們都是用 ts 撰寫的,我的 rails 應用程式不支持它。
例如這個檔案
import { Controller } from "@hotwired/stimulus"
import { useTransition } from 'stimulus-use/dist/use-transition'
export default class extends Controller {
menuTarget: HTMLElement
toggleTransition: (event?: Event) => void
leave: (event?: Event) => void
transitioned: false
static targets = ['menu']
connect (): void {
useTransition(this, {
element: this.menuTarget
})
}
toggle (): void {
this.toggleTransition()
}
hide (event: Event): void {
// @ts-ignore
if (!this.element.contains(event.target) && !this.menuTarget.classList.contains('hidden')) {
this.leave()
}
}
}
我應該做什么樣的步驟才能將其轉換為 js?請記住,我對打字稿一無所知,所以我在這里有點困惑。
我目前所做的是以下
import { Controller } from "@hotwired/stimulus"
import { useTransition } from 'stimulus-use/dist/use-transition'
export default class extends Controller {
menuTarget: HTMLElement
toggleTransition: (event?: Event) => void
leave: (event?: Event) => void
transitioned: false
static targets = ['menu']
connect() {
useTransition(this, {
element: this.menuTarget
})
}
toggle() {
this.toggleTransition()
}
hide(event) {
// @ts-ignore
if (!this.element.contains(event.target) && !this.menuTarget.classList.contains('hidden')) {
this.leave()
}
}
}
但我不太知道如何處理隱藏功能,因為它取決于線條
menuTarget: HTMLElement
toggleTransition: (event?: Event) => void
leave: (event?: Event) => void
transitioned: false
uj5u.com熱心網友回復:
你用的是什么IDE?RubyMine、Visual Studio 等確實支持自動 TypeScript 到 Javascript 的轉換。因此,您可以在 TypeScript 中作業,并在后臺自動更新 Javascript 檔案。
uj5u.com熱心網友回復:
選項 1:使用 Typescript 編譯器 ( tsc)
如果您只需要執行一次,并且您不會很快更新此代碼,那么一種簡單的方法是直接使用 typescript 編譯器。
(我假設你有 Node 并npm安裝在你的機器上):
- 首先將您的檔案從該存盤庫下載到一個目錄。
- 然后,在該目錄中,去運行
npm i -D typescript - 生成一個基本的
tsconfig.json通過:npx tsc --init - 然后呼叫打字稿編譯器:
npx tsc --outDir ./build
現在您在build目錄中擁有這些檔案的所有 javascript ES5 版本。
解釋最后一個命令的作用:
npx是一種呼叫已安裝的 npm 二進制檔案的方法。它實際上是一個包運行器。tsc是作為二進制檔案的打字稿編譯器--outDir是指示檔案輸出位置的命令列標志。
因此,如果您的檔案如下所示:
foo.ts
bar.ts
在該命令之后,它將是:
build/
foo.js
bar.js
foo.ts
bar.ts
如果你想修改輸出選項,我建議在這里閱讀 tsconfig 上的檔案
選項 2:使用像 Rollup 這樣的打包器
如果您只想為您完成此操作并使用標準包管理,我建議您考慮集成 Rollup 或 Webpack。
由于您使用的是 Rails,我建議您研究類似Webpacker 之類的東西,它允許您在 Rails 應用程式中使用 Typescript
這是一個很多更好的選擇,如果你計劃在保持此代碼無論你得到它更新。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/338829.html
標籤:javascript 红宝石轨道 打字稿 刺激js
