謎解き:TypeScriptの最新のデータ型は文字通り未知のものだ

Table of Contents

謎解き:TypeScriptの最新のデータ型は文字通り未知のものだ

Microsoft は、静的型のサポートを含む JavaScript のオープンソース拡張機能である TypeScript のバージョン 3.0 をリリースしました。

TypeScript を愛する人々 (言語ランキングで判断すると成長しているグループです) や、静的型付けの欠如に関係することが多い JavaScript を嫌う人にとって、互換性を損なう変更を除けば、これは週の始まりとしては悪くありません。

「TypeScriptはJavaScriptの拡張機能であり、静的型を最新のJavaScriptに導入することを目指しています」と、マイクロソフトのTypeScript言語プログラムマネージャーであるダニエル・ローゼンワッサー氏はブログ記事で述べています。「TypeScriptコンパイラは、型宣言や型注釈などを含むTypeScriptコードを読み取り、それらの構成要素を変換・削除した、読みやすいクリーンなJavaScriptを生成します。」

そのコードはブラウザやNode.jsなど、あらゆるECMAScriptランタイムで実行できると彼は説明した。

それがなぜ価値があるのか​​を理解するには、JavaScript では数値変数とテキスト変数を作成し、それらを加算して文字通り 1 つの文字列に結合することができることを考えてみてください。強い型付け言語では、エラーメッセージが表示され、プログラマーが目的の結果が数値なのか文字列なのかを具体的に指定するよう促すことになります。

データ型をサポートするプログラミング言語を使用すると、型関連のエラーを簡単に検出できるようになり、開発者がコードを検証するために記述する必要がある単体テストの量を削減できますが、データ型を扱うには事前に少し余分な作業が必要になります。

TypeScriptはAngularフロントエンドフレームワークの基盤です。もう一つの有力なフロントエンドフレームワークであるReactは、TypeScriptでも通常のJavaScriptでも使用できます。Reactを開発したFacebookは、型チェックに不安のある人にとってTypeScriptの代替となる、JavaScript用のオープンソースの静的型チェッカーであるFlowも開発しました。

TypeScript 3.0 では、「プロジェクト参照」と呼ばれる機能が追加され、開発者は、tsconfig.json他の構成ファイルを指すファイルに追加されたパスを通じて、ある TypeScript プロジェクトが別のプロジェクトにどのように依存するかを指定できるようになりました。

このような依存関係を指定することで、プロジェクトをより管理しやすいサイズに分割し、ビルドを高速化できます。また、--build増分ビルドを活用するためのフラグも追加されました。

アップデートされたTypeScriptは、JavaScriptの残余引数構文にも対応しています。これにより、関数に引数として可変数のパラメータを渡すことができます。バージョン3.0までは、TypeScriptにはこの種の操作にデータ型を割り当てる効率的な方法がありませんでした。

現在、TypeScript言語は残余引数をジェネリックとして扱い、タプルに変換し、その過程で関連するデータ型を推論します。Rosenwasser氏によると、MicrosoftのTypeScriptチームは、これを実現するためにタプル型にいくつかの作業を行う必要があったとのことです。

エラー メッセージも、前回の TypeScript リリース以降、注目されており、より短く、より明確になっています。

パール

公式発表:開発者によると、Perlは最も嫌われているプログラミング言語

続きを読む

という新しいデータ型があります。unknownこれは、 という別の汎用データ型とは異なりますany。「 とは異なりanyunknownは型アサーションなしでは他のものにほとんど代入できません」とRosenwasser氏は説明します。「また、 のプロパティにアクセスすることもunknown、それらを呼び出したり構築したりすることもできません。」

このunknownデータ型は、開発者が型チェックを確実に実行したい場合や、型アサーションが確実に使用されていることを確認したい場合に便利です。また、これは互換性を破る変更点の一つでもあります。unknownが予約語になったため、以前のTypeScriptコードで変数名として使用していた場合、期待どおりに動作しなくなります。

バージョン 3.0 のその他の追加機能には、より広範な JSX サポート (JSX は React で使用される JavaScript 拡張機能) と、ポリフィル (新しい API を古いランタイムで動作させるライブラリ) の新しい参照ディレクティブが含まれます。

「今後は、型システムとツールエクスペリエンスにさらなる価値をもたらし、プロジェクトリファレンスに関する既存の作業を洗練させ、あらゆる手段を講じて TypeScript(言語とプロジェクトの両方)をより親しみやすいものにしていく予定です」とローゼンワッサーは述べています。®

Discover More