TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論

カミナシ堂

LT

17:20 ~ 17:50

この発表では、TypeScriptのGitHubリポジトリにあるissue「Relate control flow to conditional types in return types」の内容を解説します。 https://github.com/microsoft/TypeScript/issues/33912 このissueは数年前から存在する難題ですが、にわかにTypeScript 5.7のIteration Planに加えられました。そのため、TS 5.7の新機能候補として期待されています。(ただし、TS 5.7にこれが実装されることが確約されるものではありません) ## 発表の内容(issueの内容) 条件型 (conditional types) はTypeScriptの型定義におけるきわめて強力なツールです。特に、返り値の型として使えば、引数の内容に応じて返り値の型を細かく調整することができるます。条件型を活用することで、複雑なロジックを含む型定義が可能になり、関数の挙動を最大限型に反映した、最大限の安全性を提供することができます。 しかし、従来条件型の型推論は全くされていませんでした。条件型を返り値とする関数の中身は、asなどの危険な機能を駆使して書かなければいけませんでした。 このissueの内容が実装されれば、返り値に条件型があってもasなどを使わずに型チェックを通せる場合が増えます。これにより、条件型の活用範囲が広がり、より高度かつな型定義を安全に書くことができるようになるでしょう。 ※ TS 5.7でこの機能が実装される見込みが無くなった場合でも、発表内容は変えずに発表します。

uhyo_image
うひょ

株式会社カオナビ / フロントエンドエキスパート

2024年1月から現職。フロントエンド開発の環境改善などを担当。TypeScriptのGitHub issueを全部読むのが趣味。

github_linktwitter_link