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

色々最適化された模様


そういえば、推しのアイドルグループのEPの発売したので、とりあえず聞いてみてほしい