米Microsoftは、プログラミング言語TypeScriptの最新ベータ版となる「TypeScript 5.4 Beta」を、1月29日(現地時間)に公開した。
TypeScript 5.4では、パラメータとlet変数がホイストされていない関数で使用される場合、型チェッカは最後の代入ポイントを探し、見つかった場合はそれを含む関数の外側から、安全にナローイングできるようになった。また、新たなユーティリティ型であるNoInfer<T>が導入され、NoInfer<...>で型を囲むと型推論の候補を見つけるために内部の型を掘り下げて照合しないようになっている。
さらに、JavaScriptにおいて新たな静的メソッドの宣言として追加された、Object.groupBy、Map.groupByがサポートされた。Object.groupByは反復可能オブジェクトと、各要素をどのグループに配置するかを決定する関数を受け取り、関数は個別のグループごとにキーを作成する必要があるため、Object.groupByはそのキーを使って、すべてのキーが元の要素を含む配列にマップされるオブジェクトを作成する。Map.groupByは、Object.groupByとほぼ同じだが、プレーンなオブジェクトの代わりにMapが生成される。
そのほか、--moduleResolution bundlerと--module preserveにおいてrequire()による呼び出しがサポートされるとともに、インポート属性とアサーションがグローバルなImportAttributes型に対してチェックされるようになり、不足しているパラメータを追加するためのクイックフィックスが導入されるなど、数多くの機能追加・改善が行われている。
この記事は参考になりましたか?
- この記事の著者
- 
                    CodeZine編集部(コードジンヘンシュウブ) CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。 ※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です 

 
              
               
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                          
                           
                              
                               
                              
                               
                              
                               
                              
                               
                              
                               
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
                      
                     
															
														 
															
														.png) 
     
     
     
     
     
													 
													 
													 
													 
													 
										
									
 
                    