TypeScript Compiler Service APIでシンプルなコンパイラを書いた

TypeScript 1.4が出てCompiler Service APIのドキュメントが出てきた。

よーし触ってみようと思ったのだけど、APIがファイルを前提にしていて、ちょっとしたTypeScriptコード片を文字列で渡して変換結果を取り出す、みたいなことをするだけなのに50行ぐらい必要

まあTypeScriptの性質上、外部ファイルを参照していたら型解決のために読み取る必要があるわけなのでファイルを前提にするのはしょうがない。ただもう少し簡単なAPIが欲しいので、typescript-simpleというモジュールを作った。

続きを読む

おまえは今まで実行したassertの回数を覚えているのか?あるいは新しいアサーションユーティリティのご提案

JavaScript Advent Calendar 2014 11日目。

いきなり要約: Promiseや非同期テストのアサーションを簡単確実に書けるようになるesplanというライブラリのPoCを作った話。

Promiseや非同期のテストは難しい

詳しくはJavaScript Promiseの本: Chapter.3 Promiseのテストをご覧いただきたいのだが、Promiseのテストを正確に書くのはそんなに簡単ではない。

続きを読む

TypeScriptの注目の型関連issue

TypeScript Advent Calendarの4日目。

TypeScriptのロードマップを見てもES6対応以外は "Investigate top-rated feature requests" とか書いてあるぐらいで、GitHub Issuesのコメントのやりとりを見ていても割りと流動的に良い提案があったら取り入れる感じで開発を進めている印象。

ということで、GitHub Issuesからおもしろそうなものをいくつか拾って紹介してみる。

続きを読む

ES6テンプレートリテラルをテンプレート関数化する

V8にES6テンプレートリテラルが入ったらしいということで、

先に入っているFirefox 34(現beta)で遊んでみた。

続きを読む

そろそろCSP Lv.2 nonceやろう

tl;dr

  • CSP Lv.2のnonceを使うと意外と簡単にCSPの恩恵を受けれるよ
  • Firefoxはunsafe-inlineとの挙動がおかしいので注意
  • サンプル実装としてExpressで簡単にnonce対応できるconnectプラグインを書いた(デモあり)
  • Violation Reportもブラウザによって細かい挙動の差異があるよ
続きを読む

3分で分かるFacebook Flow

というか3分ぐらいの情報しかまだ出てきてないんだけど。

先月の@Scale 2014で発表されたFacebookのFlowについて、おそらく唯一のオフィシャルな情報であるこの発表動画を見て分かったことを紹介(ざっと見ただけなので間違ってたらごめんなさい)。

続きを読む