1分で読めるTypeScript5.0の新機能
Decorators
ECMAScriptの仕様に合わせてデコレーターが追加された。
ざっと読んだ感想
デコレーターは逆順に実行される
もっと詳しく知りたい人はこの記事を読んでhttps://2ality.com/2022/10/javascript-decorators.html
元々あったデコレータとは別物で、これまでのやつはLegacy Decoratorsとして引き続きサポートされる
-experimentalDecorators フラグがtrueならばLegacy Decoratorsを使う
const Type Parameters
型パラメータの宣言時にconstがつけれるようになった。
mutableな型に付与した場合、効かないっぽい。なので、使う際は readonlyを付けた方が良さそう。
Supporting Multiple Configuration Files in extends
tsconfig.jsonのextendsフィールドに複数指定できるようになった。
All enums Are Union enums
すべての列挙型がUnion enumsになり、計算されたメンバーに対しても独自の型が作成されるようになった。これにより、すべての列挙型を絞り込みやメンバーを型として参照することが可能になった。
--moduleResolution bundler
Vite, esbuild, swc, Webpack, Parcelなどのmodule bundler用の設定が追加された。
Resolution Customization Flags
moduleResolution bundler が追加されたの付随して、いくつかフラグが追加されている。
--verbatimModuleSyntax
--importsNotUsedAsValues, --preserveValueImports, --isolatedModules を簡素化したもの。詳しくは読んでほしい。
@satisfies Support in JSDoc
TypeScript 4.9 で追加されたsatisfies演算子がJSDocでサポートされるようになった。
@overload Support in JSDoc
JSDocで上書きを明示できるようになった。
Passing Emit-Specific Flags Under --build
--buildフラグを渡せるようになった。開発用のbuildと本番用のbuildでoptionを分けたい時などに便利そう。
Case-Insensitive Import Sorting in Editors
importしてるファイルをsortする際、大文字小文字を区別するようになった。将来的には、エディタで設定できるようになるかもしれないらしい。
Exhaustive switch/case Completions
switch文の補完がよりいい感じになった
Speed, Memory, and Package Size Optimizations
色々最適化された模様