BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース TypeScriptがReactをサポート

TypeScriptがReactをサポート

原文(投稿日:2015/09/07)へのリンク

MicrosoftがTypeScript 1.6のベータをリリースした。これにはReactのサポートが含まれている。

プログラムマネージャのJonathan Turner氏は、ブログ記事「Announcing TypeScript 1.6 Beta: React/JSX, better error checking, and more」において、TypeScriptチームはDojo、Aurelia、Angularなどのチームと協力してきたが、Reactは「重要なライブラリ」だがTypeScript開発者にとって難しいところがあったと説明した。

Turner氏はこう言っている。

これはJSXのサポートが欠けているためでした。JSでDOMとネイティブコンポーネントを書くのに、JSXは人気のあるやり方です。Reactは日々のコードでJSXを多用します。残念ながら、JSXの構文は、すでにTypeScriptが使っているキャスト構文とコンフリクトします。

Turner氏は、バージョン1.6に新しい.tsxファイル拡張子を導入することで、「TypeScriptファイル内でJSXを使えるようにし、新しい「as」演算子をデフォルトのキャスト方法にします」と続けた。これにより、TypeScriptでReact/JSXを動かすための完全なサポートが追加される。

Hacker Newsにおける反応はまちまちだったが、大半はポジティブだった。ユーザのjschrfはこうコメントした。「TypeScriptのこうしたすばやい吸収は喜ばしいことで、Dojo 2.0やAngular 2.0といった巨大なフレームワークによる採用はすばらしいことです。でも、JSXが入り込んできたのは、ちょっと奇妙に感じずにはいられませんし、少し残念です。」

TheAnimusはこう答えた。「フロントエンドをReactJSにするのに時間をかけている組織の人にとって、これは非常に役立つでしょう。キャスト演算子が「as」になるという「訛り」は.tsxファイル内だけなので、うまく管理できるでしょう。」

TypeScript 1.6の改善には、オブジェクトチェッキングルールの更新も含まれる。代入時、オブジェクトはより厳重にマッチングする必要がある。Turner氏は次のような例をあげた。

var x: { foo: number };
x = { foo: 1, baz: 2 };  // エラー。プロパティ'baz'が余計だが、1.6より前だと捕捉されない

var y: { foo: number, bar?: number };
y = { foo: 1, baz: 2 };  // エラー。プロパティ'baz'が余計あるいはスペルミスだが、1.6より前だと捕捉されない

彼はこう言う。「フィールドがオプショナルだと、うっかりタイプミスしたフィールドを渡したり、リファクタリングで余計なフィールドが残るのを見逃しやすいです。この変更は、アーリーアダプターのコードにおいて、実際のバグを(何百とは言わないまでも)何十も見つけるのに役立っています。」

他にも1.6リリースの新しい機能には、クラス表現のサポートを追加したES6ジェネレータがある。機能の完全なリストについてはロードマップを参照してほしい。

この記事に星をつける

おすすめ度
スタイル

BT