#typescript_sushi でDecoratorsについて話してきた
#typescript_sushiに参加してきました。
ログ: #typescript_sushi - Togetterまとめ
- meta-sushi/guidelineに則ったイベントです。
#typescript_sushi pic.twitter.com/vDgCTuoQWZ
— 過激派 (@kyo_ago) March 22, 2015
Decorators進捗 - azu
LTきた #typescript_sushi pic.twitter.com/GgwszUebUg
— armorik83 (@armorik83) March 22, 2015
TypeScript 1.5で実装予定、ECMAScript 7に提案される予定のそれぞれのDecoratorsについて発表してきました。
行きの電車で書いたの資料なので、大分適当ですが基本的にはどちらも共通するところはあって、一種の糖衣構文的な扱いというところがありそうという話をしました。
- スライド: Decorators進捗
また構文として@
を使うのですが、それがzenparsing/es-private-fieldsとかぶってる問題があって、それは今度のTC30 ミーティングで話されるという話などをしました。
- TypeScriptの内部モジュールの問題
- 出てきた当時は他がなかった
- 現状、他のエコシステムと内部モジュールが相性よくない
- TypeScriptで完結するなら内部モジュールが良い
- 今はES6 modulesなどを実装が進んでいる
- 上手く移る道筋が欲しい
- このまま内部モジュールをずっと抱えるのはリスク
TypeScript vs FlowType - teppeis
#typescript_sushi tsとflowtypeの違い pic.twitter.com/Yl94xKbdbI
— azu (@azu_re) March 22, 2015
- FlowTypeとTypeScriptの違い
this
への型付けがFlowTypeだとできる- TypeScriptとFlowTypeは型キャストの仕方が違う。
<type>variable
と(variable : type)
- 互換性がある部分
- d.ts、型の書き方、es6 modules
- d.tsは誰の資産なのかという話
.d.tsは汎用的な規格になるのかTypeScript界のものなのか #typescript_sushi
— armorik83 (@armorik83) March 22, 2015
- flowtypeはOcaml
- ビルドするのにも大変
- PhantomJSとE2Eテスト
- PhantomJSにハマりどころが多すぎるので安定するまで待つ派
- そもそもChrome+WebDriver APIで動かす派
#typescript_sushi 「PhantomJS2がちゃんとできるまで、E2Eテストしない」
— azu (@azu_re) March 22, 2015
- モジュールサイズの話
- npmにライブラリをアップロードするときに.npmignoreで生成物を公開/制限するパターン - Qiita
files
フィールドを使おう
- Atom-Shellアプリを配布する話
- アプリ内では全部devDependencies
- 配布するビルドにbrowserifyしたものを同梱する
async/await
- async/await使いたいからBabelを使いたいという話
- JavaScript - ES7 の Async/Await を使ってみた - Qiita
- まだ仕様は安定ではない
- https://github.com/jhusain/asyncgenerator
- flux-comparison/flummox/はこれを上手く使ったサンプル
- TypeScriptでも1.6で予定されてる
- Babelはexperimentalフラグが必要
- TypeScriptは一度入れると仕様の追従が難しいからどうなのか?
- 1.5でDecoratorsを入れるのはそういう意味で不安
#typescript_sushi 1.6でasync/await "Roadmap · Microsoft/TypeScript Wiki" https://t.co/Zmc4iHQpDF
— azu (@azu_re) March 22, 2015
#typescript_sushi Babelは実験的フラグなのでasyncの構文が変わったら追従して変わるけどTypeScriptはメジャーバージョンじゃないと後方互換性を変えれないので、変更できない。
なのでTypeScriptにasync/awaitを1.xで入れるのは微妙
— azu (@azu_re) March 22, 2015
- ES6とTypeScriptの仕様
- TypeScriptはECMAScriptのsupersetを目指しているので、二重に同じ事を定義してないという話
#typescript_sushi TypeScriptの仕様はES6の仕様に定義されてることは二重に定義してない。
— azu (@azu_re) March 22, 2015
- TypeScriptの平和を守ってるテスト
- @sheetalkamatが大量に書いている
#typescript_sushi 噂の彼女のコミット "Commits · Microsoft/TypeScript" https://t.co/J23bzpHCMa
— azu (@azu_re) March 22, 2015
#typescript_sushi package.jsonとかgulpfileを公開する文化が欲しい。
— azu (@azu_re) March 22, 2015
- 他の人のpackage.jsonとかをもっと見たい
- 社内プロジェクトのGemfileを公開するみたいな感じのをnpmでもやったらどうか
- package.jsonやgulpfileを公開して記事にする
- The State of Grunt
- GruntがgulpみたいなStreamサポートする話はどこいったのか
- GruntのAuthorのコミットが止まってる話
- gulpはstreamだから早いのではなくて、中間ファイルを吐かない(I/Oが最小限)ので早い。
- wearefractal/vinyl-fs というファイルの抽象レイヤーによる効力
その他
「typescriptの利点は2年後でも同じ知識が流用できる点で、typescriptの欠点は2年後でも同じ知識で開発しなければならないこと」 #typescript_sushi
— 過激派 (@kyo_ago) March 22, 2015
- TypeScriptとエコシステム
- AST、Node modules、内部モジュールの問題
- BabelとES6+
- experimental、高速実装、sebmck氏
- Babelはsebmck氏が単一障害点になるかもしれないけど、超高速実装
- FlowType
- Facebookユースケース、期待半分不安半分、Reactとの相乗
のような話が中心でした。
#typescript_sushi sebmckの正体 https://t.co/4XNPSICCEY
— azu (@azu_re) March 22, 2015
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。