ニュース

JVM上でTypeScriptとVert.xを使ってES6/7を実行する

vertx-lang-typescriptを使うと、TypeScriptのバーティクルをJVM上で実行でき、アロー関数、クラス、べき乗演算子などのES6/7の機能をVert.x 3.2に導入できます。

July 4, 2026· 1 min read
JVM上でTypeScriptとVert.xを使ってES6/7を実行する

最新のVert.x 3.2リリースと、vertx-lang-typescript 1.1.0を組み合わせることで、TypeScriptでVert.xのバーティクルを書き、JVM上で直接実行できるようになりました。このライブラリはTypeScriptをその場でJavaScriptにコンパイルし、Vert.x JavaScript APIの型定義を提供するため、IDEのオートコンプリートやインラインドキュメントが利用できます。

これは単にTypeScriptの型システムだけの話ではありません。ECMAScript 6および7の機能を今日からJVMベースのスタックに取り込めるということです。この記事のサンプルバーティクルは、単一のHTTPサーバーで9つのES6/7機能を示しています:

  • リクエストハンドラのアロー関数
  • letによるブロックスコープ変数
  • デフォルトパラメータ値
  • 残余引数とスプレッド演算子
  • for…ofループ
  • テンプレート文字列と補間
  • クラスと継承
  • ES7のべき乗演算子(**

バーティクルは単一のコマンドで実行できます:vertx run es7verticle.ts。NPMパッケージのラッピングも、別途ビルドステップも不要です。これは、以前Vert.xが推奨していたBabelベースのアプローチ(npm run buildの後にnpm startが必要で、単一言語プロジェクトに固定される)よりもクリーンなワークフローです。

トレードオフ:vertx-lang-typescriptは現在、ES7からはべき乗演算子のみをサポートしています。TypeScript 1.7のデコレータはまだ実験的であるため無効化されています。完全なES7仕様が必要な場合は、将来のリリースを待つか、Babelを使い続ける必要があります。

多数のバーティクルを持つ大規模なVert.xアプリケーションでは、静的型付けとIDEサポートが真のメリットとなります。このライブラリはSublime、VS Code、Eclipse、Atomで動作します。また、vertx-lang-typescriptはその場でコンパイルするため、同じプロジェクト内でTypeScriptのバーティクルとJavaやJavaScriptのバーティクルを混在させることができます。これはNPMベースのBabelセットアップではできなかったことです。

すでにVert.xを使用していて、JVMを離れずにモダンなJavaScript構文を利用したいなら、これは検討に値します。ただし、完全なES7の遊び場を期待してはいけません。