イベントの説明
TL;DR
- TypeScriptの型定義ファイルをScala.js用に変換するscala-js-ts-importerに、機能追加プルリクを送ります。
- それによって豊富なJSライブラリをScala.jsから使いやすくし、Scalaの未来を明るくしていくのが狙いです。
- 興味があればリモートからでもご参加いただけます。appear.in で各地を繋ぎっぱなしにする予定です。
タイムテーブル
時間 | 予定 |
---|---|
10:00 | 参加者の自己紹介 |
10:15 | ★scala-js-ts-importer説明 ・ 追加したい機能 ・どこをどういじるかや、パーサ・コンビネータの使い方などの説明 |
11:00 | ハック開始 |
12:30 | お昼休憩(無料ピザを予定) |
13:30 | ハック再開 (午後から参加者いれば)★の再説明 |
17:30 | 成果発表 |
18:00 | 解散 |
背景
Scala.jsとは
Scala.jsを用いると、Scala言語の強力な型付けやScalaライブラリ、そしてJavaScriptライブラリを活用して、フロントエンド開発を行うことができます。またフロントエンドにとどまらず、サーバーレスアーキテクチャのバックエンドで、NodeJSを実行環境にScala.jsで開発した事例も出てきています。
Scala.js向けのJavaScriptライブラリbinding
Scala.jsでは、JavaScriptライブラリのbinding(facadeとも言われます)を定義することで、次のようなメリットが得られます。
- JSライブラリを型安全にScalaから呼び出す
- IDEやエディタで、呼び出したいメンバーを補完して素早く入力
メジャーなフロントエンド向けJSライブラリには、Scala.js向けbindingが開発されています。scala-js-jquery、scalajs-react、scalajs-angular、scalajs-vueなどなど……。
ラクしてbindingを書きたい
自分でbindingを書くのは、なかなか大変です。
そんなScala開発者のために、TypeScript向けbinding(index.d.tsなどでおなじみのファイル)をScala.js用に変換してくれる scala-js-ts-importer があります。このツールを使うことで、bindingを作成する手間を大きく減らすことができます。
コマンドラインで実行することもできますが、よりお手軽に Webブラウザからscala-js-ts-importerを試すこともできます。
scala-js-ts-importerをもっと強力にしたい
scala-js-ts-importerは、TypeScript用bindingのかなりの部分をScala.js用に変換することができます。しかし、TypeScriptの高度な機能を使っている場合には、まだまだ変換できないケースがあり、手作業を必要とします。
たとえば、2017年11月17日現時点で、以下のような機能がサポートされておりません。
- 別ファイルからのimport(現状、import文は無視する実装になっている)
- Generic parameter defaults
- Type guard
- const enum
- keyof and Lookup types
- export =
- document commentをScaladocに変換
- などなど…
協力者、求ム !!
主催者個人も細々とプルリクを送って改善に協力してきました。が、上述のような多くの高度な機能のサポートには、なかなか主催者1人では限界があります。
そこで、以下のような方々が集まって、少しでも多くの機能を追加していければ……と思って、このハッカソンを主催しました。
- Scala.jsで使いたいJSライブラリにラクして型をつけたい方
- TypeScriptやScalaの型システムに強い方、興味がある方
- パーサコンビネータに強い方、興味がある方
なお、ニッチなテーマにつき、参加者が1人もいなければ、主催者1人でもくもくするだけとなります。
名古屋には行けないけどリモートから協力したい、という奇特な方がいらっしゃれば、appear.in でビデオチャットしながらやろうと思います。
開催場所
- 名古屋 有限会社来栖川電算オフィス(詳しくは会場欄をご覧ください)
資料 資料をもっと見る/編集する
資料が投稿されると、最新の3件が表示されます。