Microsoftが提供するJavaScriptのオープンソースなスーパーセットであるTypeScriptは1.8ベータに達し、多くの言語機能やツール拡張を提供する。
TypeScript 1.8のもっともインパクトのある機能は、コンパイラでTypeScriptファイルと一緒にJavaScriptを使用することができるようになったことである。この機能は--allowJS
コマンドラインフラグで有効にでき、JavaScriptコードをシームレスにTypeScriptプロジェクトで使用することができ、開発者がコンパイルエラーを引き起こす可能性があるすべてのJavaScriptファイルの変換をすることなく、開発者が好きなペースで作業することができる。それに加えて、JavaScriptコードをコンパイルできるということは、サードパーティのライブラリをTypeScriptコンパイルに含めることができるため、外部パッケージにそれらを一緒にバンドルする必要がないことを意味する。
ステートレス関数コンポーネントは、Reactプロジェクトが発祥のアイディアで、TypeScript 1.8ベータに含まれることになった。これらの主な魅力は状態を持たない軽量コンポーネントで、簡単に構成することができることである。以下はTypeScriptのステートレス関すコンポーネントの例である:
let SimpleGreeter = ({name = ‘world‘}) => <div>Hello, {name}</div>;
同様のコードは以下:
interface GreeterProps {
name: string;
}
class Greeter extends React.Component<GreeterProps, {}> {
render() {
return <div>Hello, {this.props.name}</div>;
}
}
シームレス関数コンポーネントには最新バージョンのreact.d.tsが必要になる。
TypeScript 1.8ベータにはF-boundedポリモーフィズムのサポートが追加されており、型パラメータは、同じ型パラメータリストから型パラメータ参照への制限が可能になっている。以下のコードスニペットは、T
型が同じパラメータリストの他の型によって制限されており、U
はTypeScriptに適合している:
function assign<T extends U, U>(target: T, source: U): T {
for (let id in source) {
target[id] = source[id];
}
return target;
}
その他のTypeScriptコンパイラへの歓迎すべき拡張は、到達不能コード、未仕様ラベル、暗黙的な戻り値などの一般的なエラーを助ける制御フロー解析である。
TypeScript 1.8ベータには、簡易化されたReactのprops
型管理、文字列リテラル型、union/intersection型への型推論の改善などさらに多くの新機能が含まれている。公式の新機能で詳細を見ることができる。
前述の通りTypeScriptは厳密なJavaScriptのスーパーセットであり、オプショナルの静的型付けとクラスベースのオブジェクトプログラミングサポートが追加される。 TypeScript 1.8ベータは、Visual Studio 2015向け、NuGet、npmで提供されている。